changeset 514:4a1db55a9920

Use auth.RunAs in JSON controller. It's more symmetric to the rest of the application and returns the database connection earlier to the pool.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 27 Aug 2018 10:35:55 +0200
parents b6796cd91604
children ef7f56d326ae
files pkg/controllers/json.go
diffstat 1 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/json.go	Fri Aug 24 18:06:24 2018 +0200
+++ b/pkg/controllers/json.go	Mon Aug 27 10:35:55 2018 +0200
@@ -49,11 +49,10 @@
 
 	if token, ok := auth.GetToken(req); ok && !j.NoConn {
 		if session := auth.Sessions.Session(token); session != nil {
-			var conn *sql.Conn
-			if conn, err = auth.MetamorphConn(req.Context(), session.User); err == nil {
-				defer conn.Close()
+			err = auth.RunAs(session.User, req.Context(), func(conn *sql.Conn) error {
 				jr, err = j.Handle(input, req, conn)
-			}
+				return err
+			})
 		} else {
 			err = auth.ErrNoSuchToken
 		}