[MM-62687] Patch permission check to avoid modifying the system admin (#30292)

* [MM-62687] Patch permission check to avoid modifying the system admin

* Check for manage system first

* PR feedback

* Add another test

* Lint

* Fix test
Этот коммит содержится в:
Devin Binnie
2025-02-26 15:25:02 -05:00
коммит произвёл GitHub
родитель a732962f0a
Коммит 9f49403d0a
3 изменённых файлов: 22 добавлений и 4 удалений

Просмотреть файл

@@ -202,7 +202,7 @@ func (a *App) SessionHasPermissionToUser(session model.Session, userID string) b
if userID == "" {
return false
}
if session.IsUnrestricted() {
if session.IsUnrestricted() || a.SessionHasPermissionTo(session, model.PermissionManageSystem) {
return true
}
@@ -210,11 +210,20 @@ func (a *App) SessionHasPermissionToUser(session model.Session, userID string) b
return true
}
if a.SessionHasPermissionTo(session, model.PermissionEditOtherUsers) {
return true
if !a.SessionHasPermissionTo(session, model.PermissionEditOtherUsers) {
return false
}
return false
user, err := a.GetUser(userID)
if err != nil {
return false
}
if user.IsSystemAdmin() {
return false
}
return true
}
func (a *App) SessionHasPermissionToUserOrBot(rctx request.CTX, session model.Session, userID string) bool {