mirror of
https://github.com/zitadel/zitadel.git
synced 2025-06-12 19:28:33 +00:00
fix: iam permission (#720)
* fix: get iam permissions * fix: iam permissions
This commit is contained in:
parent
463294669e
commit
8fcb03854b
@ -95,7 +95,7 @@ func membershipsToOrgResp(memberships []*user_view_model.UserMembershipView, cou
|
|||||||
|
|
||||||
func (repo *UserGrantRepo) SearchMyZitadelPermissions(ctx context.Context) ([]string, error) {
|
func (repo *UserGrantRepo) SearchMyZitadelPermissions(ctx context.Context) ([]string, error) {
|
||||||
ctxData := authz.GetCtxData(ctx)
|
ctxData := authz.GetCtxData(ctx)
|
||||||
memberships, count, err := repo.View.SearchUserMemberships(&user_model.UserMembershipSearchRequest{
|
orgMemberships, orgCount, err := repo.View.SearchUserMemberships(&user_model.UserMembershipSearchRequest{
|
||||||
Queries: []*user_model.UserMembershipSearchQuery{
|
Queries: []*user_model.UserMembershipSearchQuery{
|
||||||
{
|
{
|
||||||
Key: user_model.UserMembershipSearchKeyUserID,
|
Key: user_model.UserMembershipSearchKeyUserID,
|
||||||
@ -104,19 +104,37 @@ func (repo *UserGrantRepo) SearchMyZitadelPermissions(ctx context.Context) ([]st
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: user_model.UserMembershipSearchKeyResourceOwner,
|
Key: user_model.UserMembershipSearchKeyResourceOwner,
|
||||||
Method: global_model.SearchMethodIsOneOf,
|
Method: global_model.SearchMethodEquals,
|
||||||
Value: []string{repo.IamID, ctxData.OrgID},
|
Value: ctxData.OrgID,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if count == 0 {
|
iamMemberships, iamCount, err := repo.View.SearchUserMemberships(&user_model.UserMembershipSearchRequest{
|
||||||
|
Queries: []*user_model.UserMembershipSearchQuery{
|
||||||
|
{
|
||||||
|
Key: user_model.UserMembershipSearchKeyUserID,
|
||||||
|
Method: global_model.SearchMethodEquals,
|
||||||
|
Value: ctxData.UserID,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Key: user_model.UserMembershipSearchKeyAggregateID,
|
||||||
|
Method: global_model.SearchMethodEquals,
|
||||||
|
Value: repo.IamID,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if orgCount == 0 && iamCount == 0 {
|
||||||
return []string{}, nil
|
return []string{}, nil
|
||||||
}
|
}
|
||||||
|
orgMemberships = append(orgMemberships, iamMemberships...)
|
||||||
permissions := &grant_model.Permissions{Permissions: []string{}}
|
permissions := &grant_model.Permissions{Permissions: []string{}}
|
||||||
for _, membership := range memberships {
|
for _, membership := range orgMemberships {
|
||||||
for _, role := range membership.Roles {
|
for _, role := range membership.Roles {
|
||||||
permissions = repo.mapRoleToPermission(permissions, membership, role)
|
permissions = repo.mapRoleToPermission(permissions, membership, role)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user