Mercurial > gemma
changeset 3985:5bae55d3966e pdfprint
merge with default
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Wed, 17 Jul 2019 14:12:59 +0200 |
parents | 8ec8d9bc5468 (current diff) 5396581cf203 (diff) |
children | 3560cd3ec7d3 |
files | |
diffstat | 13 files changed, 155 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- 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 {
--- 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) {
--- 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
--- 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 @@ <html lang="en"> <head> <meta charset="utf-8" /> - <title>Password reset done</title> + <title>Password reset done</title> </head> <body> <p>The password reset for user <strong><tt>{{ .User }}</tt></strong> successfully done.</p> - <p>New password: <strong><tt>{{ .Password }}</tt></strong></p> - <p><a href="/">Go to login page.</a></p> + <p>New password: <strong><tt>{{ .Password }}</tt></strong></p> + <p><a href="/">Go to login page.</a></p> </body> </html> `)) @@ -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
--- 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 }
--- 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()
--- 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 --
--- /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 <wilde@intevation.de> + +ME=`basename "$0"` +BASEDIR=`dirname "$0"` + +usage() +{ + cat <<EOF +$ME [OPTION]... + +Options: + -d, --db=NAME create the database NAME. Default: "gemma" + -p, --port=PORT connect do the postgresql cluster at PORT. + Default is the postgresql standard port 5432 + --help display this help and exit + +EOF +} + +fatal() +{ + echo >&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
--- /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; +$$;
--- /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);
--- /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);
--- 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);