Mercurial > gemma
diff pkg/controllers/importqueue.go @ 1194:7db850de0952
Added a signer who makes the final decison on an import.
Generate a log entry when the final decison is made.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 18 Nov 2018 18:29:25 +0100 |
parents | 58acc343b1b6 |
children | 486d66a9565c |
line wrap: on
line diff
--- a/pkg/controllers/importqueue.go Fri Nov 16 18:35:09 2018 +0100 +++ b/pkg/controllers/importqueue.go Sun Nov 18 18:29:25 2018 +0100 @@ -22,6 +22,7 @@ "strconv" "strings" + "gemma.intevation.de/gemma/pkg/auth" "gemma.intevation.de/gemma/pkg/imports" "gemma.intevation.de/gemma/pkg/models" "github.com/gorilla/mux" @@ -35,7 +36,8 @@ state::varchar, enqueued, kind, - username + username, + signer FROM waterway.imports ` @@ -167,6 +169,7 @@ &it.Enqueued, &it.Kind, &it.User, + &it.Signer, ); err != nil { return } @@ -295,13 +298,18 @@ SELECT state = 'pending'::waterway.import_state, kind WHERE id = $1` reviewSQL = ` -UPDATE waterway.imports SET state = $1::waterway.import_state -WHERE id = $2` +UPDATE waterway.imports SET + state = $1::waterway.import_state, + signer = $2 +WHERE id = $3` deleteImportDataSQL = `SELECT waterway.del_import($1)` deleteImportTrackSQL = ` DELETE FROM waterway.track_imports WHERE import_id = $1` + + logDecisionSQL = ` +INSERT INTO waterway.import_logs (import_id, msg) VALUES ($1, $2)` ) func reviewImport( @@ -358,7 +366,16 @@ } } - if _, err = tx.ExecContext(ctx, reviewSQL, state, id); err != nil { + // Log the decision and set the final state. + session, _ := auth.GetSession(req) + who := session.User + + if _, err = tx.ExecContext(ctx, logDecisionSQL, id, + fmt.Sprintf("User '%s' %s import %d.", who, state, id)); err != nil { + return + } + + if _, err = tx.ExecContext(ctx, reviewSQL, state, who, id); err != nil { return }