Authn: allow ResolveIdentity to authenticate in "global" scope (#85835)

* Authn: allow ResolveIdentity to authenticate in "global" scope

* Use constant
This commit is contained in:
Karl Persson 2024-04-10 11:53:45 +02:00 committed by GitHub
parent a3ed1855ff
commit ebb4bb859e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 0 deletions

View File

@ -59,6 +59,8 @@ type ClientParams struct {
SyncPermissions bool
// FetchPermissionsParams are the arguments used to fetch permissions from the DB
FetchPermissionsParams FetchPermissionsParams
// AllowGlobalOrg would allow a client to authenticate in global scope AKA org 0
AllowGlobalOrg bool
}
type FetchPermissionsParams struct {

View File

@ -132,6 +132,13 @@ func (s *UserSync) FetchSyncedUserHook(ctx context.Context, identity *authn.Iden
return errFetchingSignedInUser.Errorf("failed to resolve user: %w", err)
}
if identity.ClientParams.AllowGlobalOrg && identity.OrgID == authn.GlobalOrgID {
usr.Teams = nil
usr.OrgName = ""
usr.OrgRole = org.RoleNone
usr.OrgID = authn.GlobalOrgID
}
syncSignedInUserToIdentity(usr, identity)
return nil
}

View File

@ -26,6 +26,7 @@ func (i *IdentityClient) Authenticate(ctx context.Context, r *authn.Request) (*a
OrgID: r.OrgID,
ID: i.namespaceID,
ClientParams: authn.ClientParams{
AllowGlobalOrg: true,
FetchSyncedUser: true,
SyncPermissions: true,
},