feat: fix wrong elements in getPermissionsByUser() related functions

This commit is contained in:
Yang Luo 2023-09-24 09:13:54 +08:00
parent 687830697e
commit d145ab780c
2 changed files with 50 additions and 22 deletions

View File

@ -265,7 +265,48 @@ func getPermissionsByUser(userId string) ([]*Permission, error) {
return permissions, err return permissions, err
} }
return permissions, nil res := []*Permission{}
for _, permission := range permissions {
if util.InSlice(permission.Users, userId) {
res = append(res, permission)
}
}
return res, nil
}
func GetPermissionsByRole(roleId string) ([]*Permission, error) {
permissions := []*Permission{}
err := ormer.Engine.Where("roles like ?", "%"+roleId+"\"%").Find(&permissions)
if err != nil {
return permissions, err
}
res := []*Permission{}
for _, permission := range permissions {
if util.InSlice(permission.Roles, roleId) {
res = append(res, permission)
}
}
return res, nil
}
func GetPermissionsByResource(resourceId string) ([]*Permission, error) {
permissions := []*Permission{}
err := ormer.Engine.Where("resources like ?", "%"+resourceId+"\"%").Find(&permissions)
if err != nil {
return permissions, err
}
res := []*Permission{}
for _, permission := range permissions {
if util.InSlice(permission.Resources, resourceId) {
res = append(res, permission)
}
}
return res, nil
} }
func getPermissionsAndRolesByUser(userId string) ([]*Permission, []*Role, error) { func getPermissionsAndRolesByUser(userId string) ([]*Permission, []*Role, error) {
@ -310,26 +351,6 @@ func getPermissionsAndRolesByUser(userId string) ([]*Permission, []*Role, error)
return permissions, roles, nil return permissions, roles, nil
} }
func GetPermissionsByRole(roleId string) ([]*Permission, error) {
permissions := []*Permission{}
err := ormer.Engine.Where("roles like ?", "%"+roleId+"\"%").Find(&permissions)
if err != nil {
return permissions, err
}
return permissions, nil
}
func GetPermissionsByResource(resourceId string) ([]*Permission, error) {
permissions := []*Permission{}
err := ormer.Engine.Where("resources like ?", "%"+resourceId+"\"%").Find(&permissions)
if err != nil {
return permissions, err
}
return permissions, nil
}
func GetPermissionsBySubmitter(owner string, submitter string) ([]*Permission, error) { func GetPermissionsBySubmitter(owner string, submitter string) ([]*Permission, error) {
permissions := []*Permission{} permissions := []*Permission{}
err := ormer.Engine.Desc("created_time").Find(&permissions, &Permission{Owner: owner, Submitter: submitter}) err := ormer.Engine.Desc("created_time").Find(&permissions, &Permission{Owner: owner, Submitter: submitter})

View File

@ -259,7 +259,14 @@ func getRolesByUserInternal(userId string) ([]*Role, error) {
return roles, err return roles, err
} }
return roles, nil res := []*Role{}
for _, role := range roles {
if util.InSlice(role.Users, userId) {
res = append(res, role)
}
}
return res, nil
} }
func getRolesByUser(userId string) ([]*Role, error) { func getRolesByUser(userId string) ([]*Role, error) {