Mercurial > gemma
diff pkg/models/intservices.go @ 501:c10c76c92797 metamorph-for-all
Use metamorphic database connections for auth.RunAs().
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 24 Aug 2018 15:30:31 +0200 |
parents | 11d80120ed3d |
children | 4854a1e85870 |
line wrap: on
line diff
--- a/pkg/models/intservices.go Fri Aug 24 15:12:22 2018 +0200 +++ b/pkg/models/intservices.go Fri Aug 24 15:30:31 2018 +0200 @@ -1,6 +1,7 @@ package models import ( + "context" "database/sql" "log" "sync" @@ -64,24 +65,26 @@ func (ps *IntServices) load() error { // make empty slice to prevent retry if slice is empty. ps.entries = []IntEntry{} - return auth.RunAs("sys_admin", func(db *sql.DB) error { - rows, err := db.Query(selectPublishedServices) - if err != nil { - return err - } - defer rows.Close() - for rows.Next() { - var entry IntEntry - if err := rows.Scan( - &entry.Name, &entry.Style, - &entry.WFS, &entry.WFS, - ); err != nil { + return auth.RunAs("sys_admin", context.Background(), + func(conn *sql.Conn) error { + rows, err := conn.QueryContext( + context.Background(), selectPublishedServices) + if err != nil { return err } - ps.entries = append(ps.entries, entry) - } - return rows.Err() - }) + defer rows.Close() + for rows.Next() { + var entry IntEntry + if err := rows.Scan( + &entry.Name, &entry.Style, + &entry.WFS, &entry.WFS, + ); err != nil { + return err + } + ps.entries = append(ps.entries, entry) + } + return rows.Err() + }) return nil }