Skip to content

Commit fe643c8

Browse files
authored
fix: correct postgres check if user exits (#8)
1 parent 4194459 commit fe643c8

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

adapters/postgres_adapter.go

+13-2
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,23 @@ func (adapter postgresAdapter) DeleteDatabase(ctx context.Context, database stri
3434
}
3535

3636
func (adapter postgresAdapter) HasDatabaseUserWithAccess(ctx context.Context, database string, username string) (bool, error) {
37+
var count int
38+
query := fmt.Sprintf("SELECT COUNT(*) FROM pg_roles WHERE rolname='%s';", username)
39+
err := adapter.db.QueryRow(ctx, query).Scan(&count)
40+
if err != nil {
41+
return false, err
42+
}
43+
if count == 0 {
44+
return false, nil
45+
}
46+
3747
var hasPrivilege bool
38-
query := fmt.Sprintf("SELECT has_database_privilege('%s', '%s', 'CONNECT');", username, database)
39-
err := adapter.db.QueryRow(ctx, query).Scan(&hasPrivilege)
48+
query = fmt.Sprintf("SELECT has_database_privilege('%s', '%s', 'CONNECT');", username, database)
49+
err = adapter.db.QueryRow(ctx, query).Scan(&hasPrivilege)
4050
if err != nil {
4151
return false, err
4252
}
53+
4354
return hasPrivilege, nil
4455
}
4556

0 commit comments

Comments
 (0)