[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
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
a732962f0a
Коммит
9f49403d0a
@@ -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 {
|
||||
|
||||
Ссылка в новой задаче
Block a user