[v11.1.x] RBAC: Fix an issue with server admins not being able to manage users in orgs that they don't belong to (#92273)
* RBAC: Fix an issue with server admins not being able to manage users in orgs that they don't belong to (#92024)
* look at global perms if user is not a part of the target org
* use constant
* update tests
(cherry picked from commit 41ac5b5ae7)
* fix tests
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
This commit is contained in:
co-authored by
Ieva
parent
783216e4b9
commit
da500a56b3
@@ -195,6 +195,10 @@ func AuthorizeInOrgMiddleware(ac AccessControl, authnService authn.Service) func
|
||||
var orgUser identity.Requester = c.SignedInUser
|
||||
if targetOrgID != c.SignedInUser.GetOrgID() {
|
||||
orgUser, err = authnService.ResolveIdentity(c.Req.Context(), targetOrgID, c.SignedInUser.GetID())
|
||||
if err == nil && orgUser.GetOrgID() == NoOrgID {
|
||||
// User is not a member of the target org, so only their global permissions are relevant
|
||||
orgUser, err = authnService.ResolveIdentity(c.Req.Context(), GlobalOrgID, c.SignedInUser.GetID())
|
||||
}
|
||||
if err != nil {
|
||||
deny(c, nil, fmt.Errorf("failed to authenticate user in target org: %w", err))
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user