Access Control: optimize GetUserPermissions sql (#53279)

* Access Control: optimize GetUserPermissions sql
This commit is contained in:
lai 2022-08-09 16:40:22 +08:00 committed by GitHub
parent bf30976200
commit 8f9a372ce2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -61,7 +61,7 @@ func (s *AccessControlStore) GetUserPermissions(ctx context.Context, query acces
func userRolesFilter(orgID, userID int64, roles []string) (string, []interface{}) {
params := []interface{}{}
q := `WHERE role.id IN (`
q := `INNER JOIN (`
// This is an additional security. We should never have permissions granted to userID 0.
// Only allow real users to get user/team permissions (anonymous/apikeys)
@ -95,7 +95,7 @@ func userRolesFilter(orgID, userID int64, roles []string) (string, []interface{}
params = append(params, orgID, globalOrgID)
}
q += `)`
q += `) as all_role ON role.id = all_role.role_id`
return q, params
}