fixed multiple roles!

This commit is contained in:
2026-02-03 11:01:48 +08:00
parent 98f1705f72
commit f4b8651a5c
2 changed files with 59 additions and 26 deletions
+23 -17
View File
@@ -7,7 +7,7 @@ import (
func GetUserID(email string) (string, error) {
log.Print(email)
query := `SELECT user_id FROM users WHERE email_address = ? AND is_deleted = 0 LIMIT 1;`
query := `SELECT users_id FROM uess_user_management.users WHERE email_address = ? AND is_deleted = 0 LIMIT 1;`
var id string
err := db.DB.QueryRow(query, email).Scan(&id)
if err != nil {
@@ -51,23 +51,29 @@ func GetUserIDFromEmail(email string) (string, error) {
return id, nil
}
func GetRoleIDFromEmail(email string) (string, error) {
func GetRoleIDsFromEmail(email string) ([]int, error) {
log.Print(email)
query := `SELECT role_id
FROM (
SELECT r.id AS role_id, 1 AS priority
FROM roles r
JOIN users u ON u.role_id = r.id
WHERE u.email_address = ?
AND u.is_deleted = 0
) t
ORDER BY priority ASC
LIMIT 1;
`
var roleID string
err := db.DB.QueryRow(query, email).Scan(&roleID)
query := `SELECT ur.role_id
FROM uess_user_management.user_roles ur
JOIN uess_user_management.users u ON ur.users_id = u.users_id
WHERE u.email_address = ?
AND u.is_deleted = 0`
rows, err := db.DB.Query(query, email)
if err != nil {
return "", err
return nil, err
}
return roleID, nil
defer rows.Close()
var roleIDs []int
for rows.Next() {
var roleID int
if err := rows.Scan(&roleID); err != nil {
return nil, err
}
roleIDs = append(roleIDs, roleID)
}
if err := rows.Err(); err != nil {
return nil, err
}
return roleIDs, nil
}