comparison auth/opendb.go @ 302:0777aa6de45b

Password reset. Part I
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 01 Aug 2018 12:29:55 +0200
parents a98a282f00e1
children 394fafeb4052
comparison
equal deleted inserted replaced
301:1781e5d7cb5a 302:0777aa6de45b
22 return fmt.Sprintf("host=%s port=%d dbname=%s user=%s password=%s sslmode=%s", 22 return fmt.Sprintf("host=%s port=%d dbname=%s user=%s password=%s sslmode=%s",
23 dbQuote(host), port, dbQuote(dbname), 23 dbQuote(host), port, dbQuote(dbname),
24 dbQuote(user), dbQuote(password), sslmode) 24 dbQuote(user), dbQuote(password), sslmode)
25 } 25 }
26 26
27 func opendb(user, password string) (*sql.DB, error) { 27 func OpenDB(user, password string) (*sql.DB, error) {
28 dsn := dbDSN( 28 dsn := dbDSN(
29 config.Config.DBHost, config.Config.DBPort, 29 config.Config.DBHost, config.Config.DBPort,
30 config.Config.DBName, 30 config.Config.DBName,
31 user, password, 31 user, password,
32 config.Config.DBSSLMode) 32 config.Config.DBSSLMode)
43 ) 43 )
44 SELECT rolname FROM pg_roles 44 SELECT rolname FROM pg_roles
45 WHERE oid IN (SELECT oid FROM cte) AND rolname <> current_user` 45 WHERE oid IN (SELECT oid FROM cte) AND rolname <> current_user`
46 46
47 func AllOtherRoles(user, password string) ([]string, error) { 47 func AllOtherRoles(user, password string) ([]string, error) {
48 db, err := opendb(user, password) 48 db, err := OpenDB(user, password)
49 if err != nil { 49 if err != nil {
50 return nil, err 50 return nil, err
51 } 51 }
52 defer db.Close() 52 defer db.Close()
53 rows, err := db.Query(allRoles) 53 rows, err := db.Query(allRoles)