Commit Graph

99 Commits

Author SHA1 Message Date
Andrew Rumble adc67a8dbe Allow objectId coercion and fix typing for fetchEntity
Co-authored-by: Eric Mc Sween
<5454374+emcsween@users.noreply.github.com>
GitOrigin-RevId: 1953b7b1378403b6f2fce0608f78232cb39cff88
2025-09-09 08:06:18 +00:00
Eric Mc Sween 3a409bf5e6 Migrate UserMembershipMiddleware.fetchEntity to zod
GitOrigin-RevId: 6f0cac9d3ba1f0d3de69609e19f3d36a1a9ded10
2025-09-09 08:06:03 +00:00
Antoine Clausse b58e951e45 [web] Fix metrics pages membership middleware (#28194)
GitOrigin-RevId: c41c117e6999ee5ea202516e72f4d22c32a07668
2025-09-01 08:05:08 +00:00
Antoine Clausse 0dae38bb55 [web] Update UserMembershipMiddleware with flexible requireEntityAccess (#28018)
* Update `requireGroupSettingsReadAccess` to be available to all admins when adminRolesEnabled is true

* Update `UserMembershipMiddleware` with a flexible `requireEntityAccess` method

* Update `UserMembershipMiddleware` further

Update endpoints permissions when admin roles are enabled:

`GET /manage/groups/:id/audit-logs` -> view-audit-log
`GET /manage/groups/:id/audit-logs/zip` -> view-audit-log
`GET /manage/groups/:id/settings` -> all admins
`GET /subscription/:id/sso_configuration_test` -> all admins
`GET /manage/groups/:id/members` -> all admins
`DELETE /manage/groups/:id/user/:user_id` -> `modify-group-member`/`modify-managed-group-member`
`GET /manage/groups/:id/members/export` -> all admins

* Update `requireEntityAccess` to parameters to an object

* Rename `hasAdminAccess` to `hasAnyAdminRole`

GitOrigin-RevId: 740ea5148edc50987fbc86607b1aaa7b7523ffcb
2025-08-28 08:05:31 +00:00
Antoine Clausse 2853e7762e [web] Add admin permission modify-group-manager (#27642)
* Add capacity `modify-group-manager`

* Check `modify-group-manager` (backend)

* Check `modify-group-manager` (frontend)

* Update tests

* Rename AdminPermissions to mjs

* Add `ol-adminCapabilities` in frontend tests

* Allow modifying group managers if `adminRolesEnabled` is false

* Add `adminPrivilegeAvailable` check

* Update: set `ol-canModify` boolean instead of `ol-adminCapabilities`

* Mock `hasAnyAccess`

* Use `hasAdminCapability` helper

* Add `ol-canModify` to types

* Remove `isAdminMiddleware` as we don't want to relax the permissions for now

* Fix: pass `res` to `hasAnyAccess` (!!)

* * Check `hasWriteAccess` (`hasAdminCapability('modify-group-manager')` or `staffAccess.groupManagement`) in the Pug file
* Fix: Check `hasWriteAccess` in the publisher and institution pug files (!)
* Revert `hasAnyAccess` changes
* Rename `ol-canModify` to `ol-hasWriteAccess` for consistency with other variables

* Remove redundant file AdminPermissions.mjs

* Update unit test

* Revert changes to UserMembershipController.test.mjs

* Rename to `requireGroupManagersWriteAccess`

GitOrigin-RevId: f3f0b1b17abd1d2f0c363688e87d9063de886e3c
2025-08-21 08:05:07 +00:00
Antoine Clausse 2c44d65785 [web] Add requireAdminRoles param to hasAdminCapability (#28006)
* Add `requireAdminRoles` param to `hasAdminCapability`

https://github.com/overleaf/internal/pull/27965#discussion_r2284808889

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

* Update test

---------

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: 83f8af84debc70c7a2e294638747369c786be22f
2025-08-20 08:05:52 +00:00
Antoine Clausse ba97b96815 [web] Add admin permissions modify-group-member and modify-managed-group-member (#27665)
* Add capability `modify-managed-group-member` & `modify-group-member`

* Check `modify-managed-group-member` & `modify-group-member` (backend)

* Check `modify-managed-group-member` & `modify-group-member` (frontend)

* Update tests

* Update with `ol-hasWriteAccess` flag

* Update tests

* Move functions to AdminAuthorizationHelper.js

* Update import to fix build error

* Add `ol-hasWriteAccess` to types

* Use `hasAdminAccess()` instead of `req?.user?.isAdmin`

* Add tests on `/manage/groups/:id/invites` depending on admin roles

* Reuse `UserMembershipAuthorization.hasAdminCapability`

* Fix: Add entityAccess check

* Update unit test

* Rename `hasAdminGroupMemberCapability` to `hasModifyGroupMemberCapability`

* Remove useless and redundant `hasWriteAccess` check

* Restore stub in afterEach

GitOrigin-RevId: 4b6d83751121b43d4c19d0dbd82a4833cf7a6f24
2025-08-15 08:05:57 +00:00
Antoine Clausse fcd6c44dc3 [web] Add admin permission modify-group-setting (#27657)
* Add capacity `modify-group-setting`

* Check `modify-group-setting` (backend)

* Check `modify-group-setting` (frontend)

* Update tests

* Fix: Add entityAccess check

* Update unit test

GitOrigin-RevId: 7702fe34762ecb8bd050c2fa2b6e95a9baf90be3
2025-08-15 08:05:52 +00:00
Andrew Rumble 447efbd5b1 Combine implementations of hasAdminCapability
GitOrigin-RevId: a847c9182c018524c96726fe30e501763904b82e
2025-08-13 08:06:58 +00:00
Andrew Rumble 811b878eaa Add view-split-test and modify-split-test capabilities
GitOrigin-RevId: 3f0752aec332c386ece72d2447d39126065ddb35
2025-08-13 08:06:53 +00:00
Andrew Rumble feac1cb27b Add authorization helper for admin capabilities
GitOrigin-RevId: fbf28c89500481e379db6c49512876d867478eb7
2025-08-13 08:06:39 +00:00
Simon Gardner df2e4e7d7e Merge pull request #27506 from overleaf/slg-improve-add-manager-error
Improve error message when attempting to add non-registered manager

GitOrigin-RevId: d098b3640940c6299c279b86c9c7e2631cc73191
2025-08-05 08:06:21 +00:00
Jessica Lawshe c158d8345e Merge pull request #26366 from overleaf/jel-group-csv
[web] Include in group members CSV if user is managed and/or linked to the group's SSO

GitOrigin-RevId: 449974917d98cf121ea46eaa58be4b3666d88268
2025-07-15 08:06:14 +00:00
ilkin-overleaf cff0e23b6a Merge pull request #27015 from overleaf/ii-groups-pagination-2-revert
[web] Revert "Group members page pagination"

GitOrigin-RevId: 83c377e319c32110bdaa22970cc378f2aa89be7c
2025-07-11 08:05:44 +00:00
Eric Mc Sween 855b7ca628 Merge pull request #26968 from overleaf/em-revert-jul8
Revert bad deploy

GitOrigin-RevId: fd6227cf4fde7fd8053b47365154d59d15fa115e
2025-07-09 08:07:12 +00:00
ilkin-overleaf 820bc6e624 Merge pull request #26610 from overleaf/ii-groups-pagination-2
[web] Group members page pagination

GitOrigin-RevId: 9c7635bf24bed0af6d7d1a9626cae310f524b3e0
2025-07-09 08:06:26 +00:00
ilkin-overleaf 316161730e Merge pull request #25983 from overleaf/ii-managed-users-make-unmanaged-roles-access
[web] Prevent managers from removing/deleting themselves

GitOrigin-RevId: 9287dc06bab8024bf03fecff678a4118a9456919
2025-06-13 08:05:46 +00:00
ilkin-overleaf 1337af755c Merge pull request #24562 from overleaf/ii-bs5-group-settings-tear-down
[web] Group settings BS5 feature flag tear down

GitOrigin-RevId: c83297771dfeeb0426096b3b0765d6c420356d2a
2025-04-02 08:05:14 +00:00
ilkin-overleaf e5ddc9e1f6 Merge pull request #24430 from overleaf/ii-flexible-group-licensing-tear-down-feature-flag
[web] Tear down flexible group licensing feature flag

GitOrigin-RevId: 181713f1f2371b51cbc4256debea59bbcf3668f3
2025-03-31 08:04:42 +00:00
ilkin-overleaf 0bcf9da930 Merge pull request #23806 from overleaf/ii-bs5-manage-group-managers
[web] BS5 Group managers management

GitOrigin-RevId: 912fd29c3d5cf07eab0cd67e2771e60b1ba25fb3
2025-02-28 09:04:35 +00:00
ilkin-overleaf a9ddf24343 Merge pull request #23743 from overleaf/ii-bs5-manage-group-members
[web] BS5 Group members management

GitOrigin-RevId: fab24ee6f6de07aa64887e123df930593fcec6a2
2025-02-27 09:04:47 +00:00
ilkin-overleaf d4d1a23a1c Merge pull request #23547 from overleaf/ii-flexible-group-licensing-error-assist-2
[web] Hide flexible licensing buttons for pending plans (fix)

GitOrigin-RevId: ce5b4ce4138ed7a029b840a87c5498227e3204f4
2025-02-13 09:04:57 +00:00
Eric Mc Sween 61493ae7e1 Merge pull request #23540 from overleaf/revert-23483-ii-flexible-group-licensing-error-assist
Revert "[web] Hide flexible licensing buttons for pending plans"

GitOrigin-RevId: 6e19c2ae2663fc0cf3335e9517e80a1eee9e2659
2025-02-12 09:05:46 +00:00
ilkin-overleaf 2bb9bdea66 Merge pull request #23483 from overleaf/ii-flexible-group-licensing-error-assist
[web] Hide flexible licensing buttons for pending plans

GitOrigin-RevId: 8e9b65ae9b68cdd838442e8b45f3bd8f22e72349
2025-02-12 09:05:11 +00:00
Liangjun Song 68f9e7bbf8 Merge pull request #23435 from overleaf/ii-flexible-group-licensing-add-seats-links
[web] Add seats links handling

GitOrigin-RevId: d53264277c24ec64b6ff7744b4d7e10a4234ac86
2025-02-07 09:05:24 +00:00
ilkin-overleaf 1814d31cf7 Merge pull request #22479 from overleaf/ii-manage-members-add-more-users-link
[web] Members management flexible licensing

GitOrigin-RevId: 8b0283db95c83c2ae1c0dd4e1e756980c168f152
2024-12-13 09:05:08 +00:00
Liangjun Song 6cb4e5c388 Merge pull request #21782 from overleaf/ls-update-group-member-management-page
update group member management page for flexible licensing

GitOrigin-RevId: 605fb760a1f73763e49978cf4aea81bb88ffb425
2024-11-22 09:05:21 +00:00
Andrew Rumble b8d279c74b Migrate Features to ES modules
GitOrigin-RevId: 4e9d3176b4b5a5504afc102e569a27d7788864a3
2024-10-17 08:06:08 +00:00
andrew rumble 609f041ea6 Handle removal of mongoose callback API for UserMemberships
GitOrigin-RevId: 0bdfaf4bfb357d75ee05513cf524540eef7fcec4
2024-08-21 08:04:42 +00:00
andrew rumble b00d1336d4 Switch to mongodb-legacy
GitOrigin-RevId: 11e09528c153de6b7766d18c3c90d94962190371
2024-08-21 08:04:24 +00:00
Miguel Serrano 6ec46d7516 Merge pull request #17418 from overleaf/msm-expressify-usermembershipctlr
[web] expressify UserMembershipController

GitOrigin-RevId: 54f8d718bffb52609f055490f2a996f6c007f472
2024-03-12 09:03:20 +00:00
Jakob Ackermann 2f1a24cd7d Merge pull request #16944 from overleaf/jpa-fix-entity-creation
[web] fix creation of missing user membership entities

GitOrigin-RevId: 203d5e2bb5733479c53068543a04b58a6fa7d1a3
2024-02-09 09:04:54 +00:00
David b59e375140 Merge pull request #16788 from overleaf/dp-mongoose-callback-user-membership-handler
Promisify UserMembershipHandler and UserMembershipHandlerTests

GitOrigin-RevId: bb33110ee750364754db53fb075a5700be003ecc
2024-02-06 09:03:08 +00:00
Mathias Jakobsen 2a78b68c78 Merge pull request #16186 from overleaf/mj-mongo-object-id
[web] Use constructor for ObjectId

GitOrigin-RevId: 9eb8b377ea599605b72af237d1ab12f4d8287162
2023-12-19 09:04:02 +00:00
Jessica Lawshe eb26777b3e Merge pull request #16040 from overleaf/jel-require-group-access
[web] Add access check for group membership

GitOrigin-RevId: c7605ebb956556d9d9480cd5f3d1d6b60d99bc7c
2023-12-05 09:04:17 +00:00
Alexandre Bourdin 55424a1a7c Merge pull request #15669 from overleaf/ab-fix-sso-linking-status
[web] Fix SSO status in group members table

GitOrigin-RevId: e54e7b0c9640f0b96d9692c0208357e3bac2de91
2023-11-10 09:04:15 +00:00
Alexandre Bourdin a37f20616c Merge pull request #15418 from overleaf/ds-managedUsersEnabled
Managed users - Adding a managedUsersEnabled flag on subscription model

GitOrigin-RevId: a03dd169ba71255dd1bec5f7bee8ce9609d95a2f
2023-11-03 09:00:26 +00:00
Miguel Serrano ca473cf57e Merge pull request #15504 from overleaf/msm-fix-import-sp
[web] Replace module import breaking Server Pro

GitOrigin-RevId: 23f65b06d14019d1878c61abdf71b6b556192dc4
2023-11-01 09:03:25 +00:00
Davinder Singh 8801d03f55 Revert "Revert "Group SSO - Adding a bug fix for sending emails"" (#15307)
* Revert "Revert "Group SSO - Adding a bug fix for sending emails""
* adding conditional rendering of columns and styling fixes for each render mode with some cypress test

GitOrigin-RevId: 168011503ffacff61c8f37bee4c4bfb012909c1f
2023-10-20 08:04:08 +00:00
Eric Mc Sween 554cd6a4d9 Merge pull request #15172 from overleaf/em-promise-utils
Move util/promises from web into a shared library

GitOrigin-RevId: fe1980dc57b9dc8ce86fa1fad6a8a817e9505b3d
2023-10-20 08:04:05 +00:00
M Fahru 43fd2b5949 Merge pull request #14442 from overleaf/mf-resend-group-invite
[web] Add an option to resend group invite in managed users setting

GitOrigin-RevId: 75625c5a50dfc74b48b3a465c9f713e2d6179db8
2023-08-24 08:04:18 +00:00
Miguel Serrano e0a4bf1d65 Merge pull request #14432 from overleaf/msm-repurpose-managed-users-flag
[web] Repurpose `managedUsers.enabled` flag

GitOrigin-RevId: b968048a51feba887aaed798908779612e8c8c96
2023-08-24 08:03:37 +00:00
Alexandre Bourdin abdee0465d Merge pull request #14169 from overleaf/revert-14167-revert-14106-ab-ab-group-settings-admin-only
Revert "Revert "[web] Restrict group settings page and managed users activation to group admin""

GitOrigin-RevId: 3e622fe3c25dfa9940351450f55c1441634fbd44
2023-08-10 08:04:24 +00:00
Mathias Jakobsen 5588adf7cc Merge pull request #14167 from overleaf/revert-14106-ab-ab-group-settings-admin-only
Revert "[web] Restrict group settings page and managed users activation to group admin"

GitOrigin-RevId: 01eea0696bae95a5c1c6b48486c08219445558a4
2023-08-04 08:04:46 +00:00
Alexandre Bourdin 1a3b9bdd5b Merge pull request #14106 from overleaf/ab-ab-group-settings-admin-only
[web] Restrict group settings page and managed users activation to group admin

GitOrigin-RevId: 97235d3e78d97d9c367ce7de70072607f15d98f0
2023-08-04 08:03:48 +00:00
Davinder Singh 72243b53a5 Merge pull request #13591 from overleaf/ab-account-enrollment
[web] Managed users - account enrollment

GitOrigin-RevId: 6fc9ef8c44394eb92d3afd2022433b0b6d508503
2023-07-17 10:59:02 +00:00
June Kelly cd2aa10966 Merge pull request #13483 from overleaf/jk-managed-users-group-management-ui
[web] Managed Users: Update Group Member Management UI

GitOrigin-RevId: 6896951927f0e3220db59dda208d7cfe9c6c309e
2023-07-17 10:46:16 +00:00
Alexandre Bourdin 9d6b28f1b5 Merge pull request #13311 from overleaf/ab-tear-down-subscription-pages-react
[web] Tear down subscription-pages-react test and remove Angular code

GitOrigin-RevId: 3cf906e476ffa52a058ccb4e4acbb89a657bd021
2023-07-17 10:22:45 +00:00
Eric Mc Sween 5fb275392f Merge pull request #11995 from overleaf/em-unnecessary-returns
Decaf cleanup: unnecessary returns

GitOrigin-RevId: e3c006b0e15095c8cbed2911269f704a7fdd1d57
2023-02-28 09:03:46 +00:00
Alexandre Bourdin 4783bf167c [web] Migrate group management to React (#11293)
* Rename manage group entry point

* Migrate group management root page to React

* Add cypress tests for the group management react page

* Fix linting

* Add checkbox labels for screen-readers + remove unused classes

* Await on add/remove members calls

* Display the export CSV link for a full group

* Display error message when group is full

* Sort locales

* Handle the managers management page in React version

* Fix missing type in GroupMemberRow

* Split members and managers React pages

* Build API paths on frontend side + add cypress tests for each page

* Fix linting

* Update unit tests

* Review improvements

* Type API errors

GitOrigin-RevId: d124a9d24cbf33de8aacc5d69e9d46e7bcda93c5
2023-02-07 09:04:18 +00:00