[web] Add admin permissions modify-group & modify-managed-group (#27456)

* Add capabilities `modify-group` and `modify-managed-group`

* Fix: Warning: validateDOMNesting(...): <span> cannot appear as a child of <option>

* Add `form-control` to select (fix styles)

* Check if admin can modify the group (frontend)

* Check if admin can modify the group (backend)

* Update tests

* Fix: Set `useSettingsUKAMF` state from `data?.useSettingsUKAMF`

* Add tests: Subscriptions update with adminRolesEnabled

* Use `getAdminCapabilities` helper

* Update `requireModifyGroupPermission` to array

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>

* Rename `canModify` to `canModifySubscription`

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>

* Refactor `requireModifyGroupPermission` stub

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>

* Test with `adminRolesEnabled` in SubscriptionDeletionTests.mjs

* Update test description with `adminRoles`

---------

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: 37b9a2e838fd566a33aa3a70631cebfd01b520ef
This commit is contained in:
Antoine Clausse
2025-08-13 10:07:05 +02:00
committed by Copybot
parent ca30fdd95c
commit 5bffc0d116
2 changed files with 5 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ import MockSubscription from './Subscription.mjs'
import SubscriptionUpdater from '../../../../app/src/Features/Subscription/SubscriptionUpdater.js'
import { Subscription as SubscriptionModel } from '../../../../app/src/models/Subscription.js'
import { DeletedSubscription as DeletedSubscriptionModel } from '../../../../app/src/models/DeletedSubscription.js'
import { promisifyClass } from '@overleaf/promise-utils'
class DeletedSubscription {
constructor(options = {}) {
@@ -41,4 +42,6 @@ class DeletedSubscription {
}
}
DeletedSubscription.promises = promisifyClass(DeletedSubscription)
export default DeletedSubscription

View File

@@ -4,7 +4,9 @@ export type AdminCapability =
| 'create-recurly-account'
| 'create-subscription'
| 'modify-feature-override'
| 'modify-group'
| 'modify-login-status'
| 'modify-managed-group'
| 'manage-survey'
| 'modify-split-test'
| 'modify-user-email'