# HG changeset patch # User Thomas Junk # Date 1563365579 -7200 # Node ID 5bae55d3966e51e3f73e6bd947677cef054f16ff # Parent 8ec8d9bc5468f1c7ebbb0c5fe005802e0fa12239# Parent 5396581cf20334cbc5e69280e5d9b192640d96b9 merge with default diff -r 8ec8d9bc5468 -r 5bae55d3966e cmd/gemma/main.go --- a/cmd/gemma/main.go Wed Jul 17 12:48:19 2019 +0200 +++ b/cmd/gemma/main.go Wed Jul 17 14:12:59 2019 +0200 @@ -91,7 +91,7 @@ done <- server.ListenAndServe() }() - sigChan := make(chan os.Signal) + sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, os.Interrupt, os.Kill, syscall.SIGTERM) select { diff -r 8ec8d9bc5468 -r 5bae55d3966e pkg/controllers/bottlenecks.go --- a/pkg/controllers/bottlenecks.go Wed Jul 17 12:48:19 2019 +0200 +++ b/pkg/controllers/bottlenecks.go Wed Jul 17 14:12:59 2019 +0200 @@ -519,7 +519,6 @@ // Too late for HTTP status message. log.Printf("error: %v\n", err) } - return } func bottleneckAvailableFairwayDepth(rw http.ResponseWriter, req *http.Request) { diff -r 8ec8d9bc5468 -r 5bae55d3966e pkg/controllers/importconfig.go --- a/pkg/controllers/importconfig.go Wed Jul 17 12:48:19 2019 +0200 +++ b/pkg/controllers/importconfig.go Wed Jul 17 14:12:59 2019 +0200 @@ -105,7 +105,7 @@ oldPasswd, ok := pc.Attributes["password"] pc.User = session.User pc.Attributes = common.Attributes{} - if ok == true { + if ok { pc.Attributes["password"] = oldPasswd } pc.Attributes.Marshal(config) // Marshal only overwrites keys present in config diff -r 8ec8d9bc5468 -r 5bae55d3966e pkg/controllers/pwreset.go --- a/pkg/controllers/pwreset.go Wed Jul 17 12:48:19 2019 +0200 +++ b/pkg/controllers/pwreset.go Wed Jul 17 14:12:59 2019 +0200 @@ -82,9 +82,9 @@ const pwResetRole = "sys_admin" var ( - errTooMuchPasswordResets = errors.New("Too many password resets") - errNoSuchUser = errors.New("User does not exist") - errInvalidUser = errors.New("Invalid user") + errTooMuchPasswordResets = errors.New("too many password resets") + errNoSuchUser = errors.New("user does not exist") + errInvalidUser = errors.New("invalid user") ) var ( @@ -111,12 +111,12 @@ - Password reset done + Password reset done

The password reset for user {{ .User }} successfully done.

-

New password: {{ .Password }}

-

Go to login page.

+

New password: {{ .Password }}

+

Go to login page.

`)) @@ -285,7 +285,7 @@ err = tx.QueryRowContext(ctx, findRequestSQL, hash).Scan(&user) switch { case err == sql.ErrNoRows: - return errors.New("This URL is no longer valid.") + return errors.New("this URL is no longer valid") case err != nil: return err } @@ -295,7 +295,7 @@ return err } if n, err2 := res.RowsAffected(); err2 == nil && n == 0 { - return errors.New("User not found") + return errors.New("user not found") } if _, err = tx.ExecContext(ctx, deleteRequestSQL, hash); err != nil { return err diff -r 8ec8d9bc5468 -r 5bae55d3966e pkg/controllers/srimports.go --- a/pkg/controllers/srimports.go Wed Jul 17 12:48:19 2019 +0200 +++ b/pkg/controllers/srimports.go Wed Jul 17 14:12:59 2019 +0200 @@ -105,7 +105,7 @@ case "false", "0": negateZ = false default: - return fmt.Errorf("Unknown negate-z '%s'", v) + return fmt.Errorf("unknown negate-z '%s'", v) } sr.NegateZ = &negateZ } @@ -118,7 +118,7 @@ case "false", "0", "multibeam", "multi-beam": singleBeam = false default: - return fmt.Errorf("Unknown single-beam '%s'", v) + return fmt.Errorf("unknown single-beam '%s'", v) } sr.SingleBeam = &singleBeam } diff -r 8ec8d9bc5468 -r 5bae55d3966e pkg/imports/sr.go --- a/pkg/imports/sr.go Wed Jul 17 12:48:19 2019 +0200 +++ b/pkg/imports/sr.go Wed Jul 17 14:12:59 2019 +0200 @@ -141,9 +141,6 @@ ST_AsBinary(ST_Transform(area::geometry, best_utm(area))) ` - reprojectPointsSQL = ` -SELECT ST_AsBinary(ST_Transform(ST_GeomFromWKB($1, $2::integer), $3::integer))` - reprojectPointsBufferedSQL = ` SELECT ST_AsBinary(ST_Transform(ST_GeomFromWKB($1, $2::integer), $3::integer)), @@ -556,8 +553,6 @@ feedback.Info("Number triangles: %d.", len(tri.Triangles)/3) feedback.Info("Clipping triangles from new mesh.") - } else { // multi beam - // Nothing special } start = time.Now() diff -r 8ec8d9bc5468 -r 5bae55d3966e schema/gemma.sql --- a/schema/gemma.sql Wed Jul 17 12:48:19 2019 +0200 +++ b/schema/gemma.sql Wed Jul 17 14:12:59 2019 +0200 @@ -206,6 +206,23 @@ -- +-- GEMA meta data +-- +CREATE TABLE gemma_schema_version ( + version int PRIMARY KEY, + update_date timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE OR REPLACE FUNCTION get_schema_version() RETURNS int + LANGUAGE plpgsql + AS $$ + BEGIN + RETURN ( SELECT max(version) FROM gemma_schema_version ); + END; +$$; + + +-- -- GEMMA data -- diff -r 8ec8d9bc5468 -r 5bae55d3966e schema/update-db.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema/update-db.sh Wed Jul 17 14:12:59 2019 +0200 @@ -0,0 +1,109 @@ +#!/bin/bash -e +# This is Free Software under GNU Affero General Public License v >= 3.0 +# without warranty, see README.md and license for details. +# +# SPDX-License-Identifier: AGPL-3.0-or-later +# License-Filename: LICENSES/AGPL-3.0.txt +# +# Copyright (C) 2019 by via donau +# – Österreichische Wasserstraßen-Gesellschaft mbH +# Software engineering by Intevation GmbH +# +# Author(s): +# * Sascha Wilde + +ME=`basename "$0"` +BASEDIR=`dirname "$0"` + +usage() +{ + cat <&2 "$1" + exit 23 +} + +genpw() +# $1 - length +{ + PW='' + until [ "$(grep '[^[:alnum:]]' <<<$PW)" -a "$(grep '[[:digit:]]' <<<$PW)" ] + do + PW=$(dd count=1 if=/dev/urandom 2>/dev/null \ + | tr -cd '[:alnum:],._!?-' | tail -c "$1") + done + echo "$PW" +} + +# Defaults: + +db=gemma +port=5432 + +# Parse options: + +OPTS=`getopt \ + -l help,db:,port: \ + -o d:p: -n "$ME" -- "$@"` +[ $? -eq 0 ] || { usage ; exit 1 ; } + +eval set -- "$OPTS" + +while true ; do + case "$1" in + --db|-d) + db="$2" + shift 2 + ;; + --port|-p) + port="$2" + shift 2 + ;; + --help) + { usage ; exit 0 ; } + ;; + --) + shift + break + ;; + esac +done + + +get_version() +{ + local ver + if ver=$( psql -qtA -p "$port" -d "$db" \ + -c 'SELECT get_schema_version()' 2>/dev/null ) + then + echo $ver + else + echo '-1' + fi +} + +# Main ------------------------------------------------------------ + +current_ver=$( get_version ) + +for d in $BASEDIR/updates/* ; do + new_ver=$( basename $d ) + if [ -d "$d" -a "$new_ver" -gt $current_ver ] ; then + echo "Running updates for $new_ver ..." + + sql=$( cat `echo "$d/"* | sort -n` ) + psql -1 -q -p "$port" -d "$db" -c "$sql" + fi +done diff -r 8ec8d9bc5468 -r 5bae55d3966e schema/updates/0000/01.add_schema_version.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema/updates/0000/01.add_schema_version.sql Wed Jul 17 14:12:59 2019 +0200 @@ -0,0 +1,12 @@ +CREATE TABLE gemma_schema_version ( + version int PRIMARY KEY, + update_date timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE OR REPLACE FUNCTION get_schema_version() RETURNS int + LANGUAGE plpgsql + AS $$ + BEGIN + RETURN ( SELECT max(version) FROM gemma_schema_version ); + END; +$$; diff -r 8ec8d9bc5468 -r 5bae55d3966e schema/updates/0000/99.set_version.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema/updates/0000/99.set_version.sql Wed Jul 17 14:12:59 2019 +0200 @@ -0,0 +1,1 @@ +INSERT INTO gemma_schema_version(version) VALUES (0); diff -r 8ec8d9bc5468 -r 5bae55d3966e schema/updates/0301/99.set_version.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema/updates/0301/99.set_version.sql Wed Jul 17 14:12:59 2019 +0200 @@ -0,0 +1,1 @@ +INSERT INTO gemma_schema_version(version) VALUES (301); diff -r 8ec8d9bc5468 -r 5bae55d3966e schema/updates/1000/01.pwreset.sql --- a/schema/updates/1000/01.pwreset.sql Wed Jul 17 12:48:19 2019 +0200 +++ b/schema/updates/1000/01.pwreset.sql Wed Jul 17 14:12:59 2019 +0200 @@ -1,7 +1,4 @@ -BEGIN; - GRANT INSERT, DELETE, UPDATE ON sys_admin.password_reset_requests TO sys_admin; -ALTER TABLE sys_admin.password_reset_requests ADD CONSTRAINT password_reset_requests_username_key UNIQUE(username); - -COMMIT; +ALTER TABLE sys_admin.password_reset_requests + ADD CONSTRAINT password_reset_requests_username_key UNIQUE(username); diff -r 8ec8d9bc5468 -r 5bae55d3966e schema/updates/1000/99.set_version.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema/updates/1000/99.set_version.sql Wed Jul 17 14:12:59 2019 +0200 @@ -0,0 +1,1 @@ +INSERT INTO gemma_schema_version(version) VALUES (1000);