overleaf-cep/services/web/frontend/js/utils
Antoine Clausse cf668d897d [web] Create middleware and functions for checks on admin permissions (#27107)
* Create AdminCapabilities in admin-panel module

* Add `adminRolesEnabled` setting

* Use `PermissionsController.requirePermission` in admin-panel routes

* Update `adminCapabilities` to be an array

* Update frontend tests

* Rename `defaultAdminCapabilities` to `fullAdminCapabilities`

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

* Add tests to PermissionsManagerTests.js

* Get admin roles and capabilities from the database

* Add tests to admin-panel

* Fixup PermissionsManagerTests.js without admin-panel module

* Revert "Use `PermissionsController.requirePermission` in admin-panel routes"

This reverts commit ccbf3e3e3bca9239b786c662cba2ac6bd2f4117a.

* Revert "Fixup PermissionsManagerTests.js without admin-panel module"

This reverts commit 6d7ad207bb17c5ca4c12c489d4636a02c608926d.

* Revert "Add tests to PermissionsManagerTests.js"

This reverts commit 8f9cc911750911e1c4b74b631d8c8a1b1ca86630.

* Fix tests after the reverts

* Replace capabilities to more sensible examples ('modify-user-email' and 'view-project')

* Set `adminRolesEnabled: false` for now

* Return `[]` capabilities for non-admins

* Misc: types, test description, settings ordering

* Small refactor of AdminPermissions.mjs:

Reuse code with `getMissingCapabilities`
Throw when `requiredCapabilities` is empty

* Update tests after update

* Rename `checkAdminPermissions` to `hasAdminPermissions`

* Change role permissions to array instead of object

* Remove admin capabilities when `!Settings.adminPrivilegeAvailable`

* Return `[]` if there is no user id

* Throw if `user?._id` is missing

* Update services/web/modules/admin-panel/app/src/AdminPermissions.mjs

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

* Adjust to ForbiddenError constructor syntax

* Give empty capabilities for unknown role, update tests

---------

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 1eec4f6a45e1cc3ae76a3a4603cec1ceba1c2322
2025-07-18 08:06:40 +00:00
..
abort-signal.ts Add polyfills for AbortSignal.any and AbortSignal.timeout (#24958) 2025-04-28 08:05:04 +00:00
abortsignal-polyfill.ts Add polyfills for AbortSignal.any and AbortSignal.timeout (#24958) 2025-04-28 08:05:04 +00:00
dates.ts Convert utility functions to TypeScript (#22658) 2025-01-16 09:05:36 +00:00
debugging.ts Merge pull request #14980 from overleaf/jpa-debug-console 2023-09-28 08:04:12 +00:00
decode-utf8.ts Merge pull request #15376 from overleaf/td-ide-page-working-editor 2023-10-27 08:03:07 +00:00
EventEmitter.ts Convert utility functions to TypeScript (#22658) 2025-01-16 09:05:36 +00:00
functions.ts Merge pull request #19840 from overleaf/ii-bs5-project-tools 2024-08-22 14:01:43 +00:00
is-ieee-branded.ts Merge pull request #22506 from overleaf/td-bs5-ieee-overall-theme-take-2 2024-12-17 09:05:28 +00:00
is-network-error.ts Convert utility functions to TypeScript (#22658) 2025-01-16 09:05:36 +00:00
labs-utils.ts Merge pull request #24878 from overleaf/mj-editor-redesign-experiment 2025-04-23 08:05:22 +00:00
meta.ts [web] Create middleware and functions for checks on admin permissions (#27107) 2025-07-18 08:06:40 +00:00
normalize.ts Merge pull request #7290 from overleaf/ii-7154-list-user-emails 2022-04-11 08:03:38 +00:00
operations.ts Only dispatch doc:changed event for insert or delete operations (#23779) 2025-02-24 09:05:02 +00:00
react.ts Merge pull request #23940 from overleaf/td-react-18 2025-05-02 08:05:29 +00:00
readable-stream-async-iterator-polyfill.ts Merge pull request #19830 from overleaf/ae-iterator-polyfill 2024-08-08 08:04:26 +00:00
screen-breakpoint.ts Merge pull request #21990 from overleaf/mf-payment-page-view-segmentation 2024-11-21 09:05:23 +00:00
service-worker-cleanup.js Merge pull request #8776 from overleaf/jpa-drop-service-worker 2022-07-11 08:03:57 +00:00
splitTestUtils.ts Merge pull request #14773 from overleaf/ii-modify-design-system-update-split-test 2023-09-18 08:03:49 +00:00
wasm.ts Disable spell check if WebAssembly is not available (#23136) 2025-01-29 09:04:41 +00:00
webpack-public-path.ts Convert utility functions to TypeScript (#22658) 2025-01-16 09:05:36 +00:00