[web] Update admin permissions to view/modify project contents (#28162)

* Split capability definitions `modify-project`/`view-project` into `modify-project-content`/`modify-project-setting`/`view-project-content`/`view-project-setting`

* Add admin capabilities check in AuthorizationManager

* Update checks in router

* Update frontend checks

* Remove UI elements for admins without `view-project-content`

* Update tests

* Remove `modify-project-content` from the roles' capabilities

* Update tests

* Add "with admin roles" tests in AuthorizationTests.mjs

GitOrigin-RevId: 3311bcb2da792968927b5b3703b24e069d0baf5b
This commit is contained in:
Antoine Clausse
2025-09-05 08:05:08 +00:00
committed by Copybot
parent 408a55460a
commit 86e74b9228
4 changed files with 150 additions and 26 deletions
@@ -709,13 +709,13 @@ function testPermission(permission, privilegeLevels) {
})
expectPermission(permission, false)
})
describe('admin with `view-project`', function () {
describe('admin with `view-project-content`', function () {
beforeEach(function () {
this.user.isAdmin = true
this.settings.adminRolesEnabled = true
this.Modules.promises.hooks.fire
.withArgs('getAdminCapabilities')
.resolves([['view-project']])
.resolves([['view-project-content']])
})
expectPermission(permission, privilegeLevels.readOnly || false)
})
@@ -725,7 +725,14 @@ function testPermission(permission, privilegeLevels) {
this.settings.adminRolesEnabled = true
this.Modules.promises.hooks.fire
.withArgs('getAdminCapabilities')
.resolves([['view-project', 'modify-project']])
.resolves([
[
'view-project-content',
'view-project-setting',
'modify-project-content',
'modify-project-setting',
],
])
})
expectPermission(permission, privilegeLevels.siteAdmin || false)
})