mirror of
https://github.com/AlistGo/alist.git
synced 2025-09-15 12:58:42 +08:00
refactor (auth): Optimize permission path processing logic (#9320)
Some checks are pending
beta release / Beta Release Changelog (1.21, ubuntu-latest) (push) Waiting to run
beta release / Beta Release (md5, !(*musl*|*windows-arm64*|*android*|*freebsd*)) (push) Blocked by required conditions
beta release / Beta Release (md5-android, android-*) (push) Blocked by required conditions
beta release / Beta Release (md5-freebsd, freebsd-*) (push) Blocked by required conditions
beta release / Beta Release (md5-linux-musl, linux-!(arm*)-musl*) (push) Blocked by required conditions
beta release / Beta Release (md5-linux-musl-arm, linux-arm*-musl*) (push) Blocked by required conditions
beta release / Beta Release (md5-windows-arm64, windows-arm64) (push) Blocked by required conditions
beta release / Beta Release Desktop (push) Blocked by required conditions
build / Build (ubuntu-latest, android-arm64) (push) Waiting to run
build / Build (ubuntu-latest, darwin-amd64) (push) Waiting to run
build / Build (ubuntu-latest, darwin-arm64) (push) Waiting to run
build / Build (ubuntu-latest, linux-amd64-musl) (push) Waiting to run
build / Build (ubuntu-latest, linux-arm64-musl) (push) Waiting to run
build / Build (ubuntu-latest, windows-amd64) (push) Waiting to run
build / Build (ubuntu-latest, windows-arm64) (push) Waiting to run
release_docker / Build Binaries for Docker Release (push) Waiting to run
release_docker / Release Docker image (, latest, ) (push) Blocked by required conditions
release_docker / Release Docker image (INSTALL_ARIA2=true, aria2, suffix=-aria2,onlatest=true) (push) Blocked by required conditions
release_docker / Release Docker image (INSTALL_FFMPEG=true
INSTALL_ARIA2=true
, aio, suffix=-aio,onlatest=true) (push) Blocked by required conditions
release_docker / Release Docker image (INSTALL_FFMPEG=true, ffmpeg, suffix=-ffmpeg,onlatest=true) (push) Blocked by required conditions
Some checks are pending
beta release / Beta Release Changelog (1.21, ubuntu-latest) (push) Waiting to run
beta release / Beta Release (md5, !(*musl*|*windows-arm64*|*android*|*freebsd*)) (push) Blocked by required conditions
beta release / Beta Release (md5-android, android-*) (push) Blocked by required conditions
beta release / Beta Release (md5-freebsd, freebsd-*) (push) Blocked by required conditions
beta release / Beta Release (md5-linux-musl, linux-!(arm*)-musl*) (push) Blocked by required conditions
beta release / Beta Release (md5-linux-musl-arm, linux-arm*-musl*) (push) Blocked by required conditions
beta release / Beta Release (md5-windows-arm64, windows-arm64) (push) Blocked by required conditions
beta release / Beta Release Desktop (push) Blocked by required conditions
build / Build (ubuntu-latest, android-arm64) (push) Waiting to run
build / Build (ubuntu-latest, darwin-amd64) (push) Waiting to run
build / Build (ubuntu-latest, darwin-arm64) (push) Waiting to run
build / Build (ubuntu-latest, linux-amd64-musl) (push) Waiting to run
build / Build (ubuntu-latest, linux-arm64-musl) (push) Waiting to run
build / Build (ubuntu-latest, windows-amd64) (push) Waiting to run
build / Build (ubuntu-latest, windows-arm64) (push) Waiting to run
release_docker / Build Binaries for Docker Release (push) Waiting to run
release_docker / Release Docker image (, latest, ) (push) Blocked by required conditions
release_docker / Release Docker image (INSTALL_ARIA2=true, aria2, suffix=-aria2,onlatest=true) (push) Blocked by required conditions
release_docker / Release Docker image (INSTALL_FFMPEG=true
INSTALL_ARIA2=true
, aio, suffix=-aio,onlatest=true) (push) Blocked by required conditions
release_docker / Release Docker image (INSTALL_FFMPEG=true, ffmpeg, suffix=-ffmpeg,onlatest=true) (push) Blocked by required conditions
- Changed permission path collection from map to slice to improve code readability - Removed redundant path checks to improve path addition efficiency - Restructured the loop logic for path processing to simplify the path permission assignment process
This commit is contained in:
parent
28a8428559
commit
6e7c7d1dd0
@ -165,25 +165,25 @@ func CurrentUser(c *gin.Context) {
|
||||
|
||||
var roleNames []string
|
||||
permMap := map[string]int32{}
|
||||
addedPaths := map[string]bool{}
|
||||
paths := make([]string, 0)
|
||||
|
||||
for _, role := range user.RolesDetail {
|
||||
roleNames = append(roleNames, role.Name)
|
||||
for _, entry := range role.PermissionScopes {
|
||||
cleanPath := path.Clean("/" + strings.TrimPrefix(entry.Path, "/"))
|
||||
if _, ok := permMap[cleanPath]; !ok {
|
||||
paths = append(paths, cleanPath)
|
||||
}
|
||||
permMap[cleanPath] |= entry.Permission
|
||||
}
|
||||
}
|
||||
userResp.RoleNames = roleNames
|
||||
|
||||
for fullPath, perm := range permMap {
|
||||
if !addedPaths[fullPath] {
|
||||
userResp.Permissions = append(userResp.Permissions, model.PermissionEntry{
|
||||
Path: fullPath,
|
||||
Permission: perm,
|
||||
})
|
||||
addedPaths[fullPath] = true
|
||||
}
|
||||
for _, fullPath := range paths {
|
||||
userResp.Permissions = append(userResp.Permissions, model.PermissionEntry{
|
||||
Path: fullPath,
|
||||
Permission: permMap[fullPath],
|
||||
})
|
||||
}
|
||||
|
||||
common.SuccessResp(c, userResp)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user