Commit Graph

4394 Commits

Author SHA1 Message Date
Domagoj Kriskovic
cffad44264 Add support for handling deleted root document in RestoreManager (#28008)
* Skip opening root document if delete originated from a file-restore

* handle project-restore origin

* Refactor isFileRestore logic

* Add support for handling deleted root document in RestoreManager

GitOrigin-RevId: 837144aa6e269cbffebf82624f58e8219fe654c4
2025-08-27 08:05:30 +00:00
Eric Mc Sween
fa9cea9f1d Merge pull request #28098 from overleaf/em-dsmp-chat-event
Send a DSMP event when a chat message is sent

GitOrigin-RevId: 062476676c91a4edf3d6f837d60ad16c7f912771
2025-08-26 08:05:36 +00:00
Eric Mc Sween
201e5c49aa Merge pull request #28019 from overleaf/em-dsmp-comment-event
DS mobile notification for comment added/replied to

GitOrigin-RevId: 602983c679ed415bf8dd8fbf83b328e5ee832e2b
2025-08-26 08:05:20 +00:00
Domagoj Kriskovic
8c3fe3bd31 [web] change the order when creating a memebers list in permissions checks (#28063)
GitOrigin-RevId: 73fd9218841d189dc95edec86f09d451005e6189
2025-08-26 08:05:13 +00:00
Rebeka Dekany
74533fc401 Replace placeholders with labels (#26811)
* Replace placeholders for labels

* Remove redundant aria-label and update labels with `.visually-hidden`

* Change "Invite more members" to a label

* Fix helper text for group members and fix responsiveness

* Change error message to an error notification

* Use label and helper text instead of a placeholder

* Remove redundant label and use the placeholder text instead for the admin user searchbar

* Extract translations

GitOrigin-RevId: a504fda9779da82920b57c7b8aad38a8b027d09a
2025-08-26 08:05:02 +00:00
Eric Mc Sween
bae0a88dcb Merge pull request #28077 from overleaf/em-promisify-chat-controller
Promisify ChatController

GitOrigin-RevId: c2af5f7bc24b1e6c682bb1dfd1146c3dcc90ae25
2025-08-25 08:05:42 +00:00
Domagoj Kriskovic
f65f567380 Add getThread in Chat service and use it in AuthorizationMiddleware (#28041)
* Add getThread in Chat service and use it in AuthorizationMiddleware

* ensure user_id is a string, not ObjectId

* fix tests

GitOrigin-RevId: 42d63366b9b9350d7cdbcbc3b9f4761d9f55b49a
2025-08-25 08:05:25 +00:00
Andrew Rumble
6190005f9b [monorepo] Upgrade to node 22.18.0 (#27977)
* Upgrade to node 22.18.0

* Switch projects-data fixture to strip-types compatible form

GitOrigin-RevId: 4a7ec56f4a82395d2be8870526df0c679de38ab5
2025-08-22 08:05:17 +00:00
Antoine Clausse
af44f478b9 [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
Jessica Lawshe
2389674cca Merge pull request #27894 from overleaf/ii-domain-capture-join-button
[web] Domain capture join button

GitOrigin-RevId: aec6033f6776e9384c77fe0ef609c65b13a90f87
2025-08-20 08:06:21 +00:00
Jessica Lawshe
1aef3acca9 Merge pull request #27834 from overleaf/ii-domain-capture-not-in-group-redirect
[web] Redirect to domain capture page

GitOrigin-RevId: 15d2b8046beb5a40fc4937c337ee9655abaed8fd
2025-08-20 08:06:16 +00:00
MoxAmber
fc5ae92be1 Merge pull request #27677 from overleaf/as-compile-timeout-enforcement
[web] 10s Compile Timeout - Enforcement Phase

GitOrigin-RevId: 3930eb376cc1293409259e073032218e09d5270e
2025-08-20 08:06:01 +00:00
MoxAmber
86a1be9739 Merge pull request #27848 from overleaf/as-compile-warning-teardown
[web] Tear down 10s-timeout-warning split test

GitOrigin-RevId: ca8faf77bc73073e9fc126d9d722fe568921c1c3
2025-08-20 08:05:57 +00:00
Antoine Clausse
5373c84d9f [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
Simon Gardner
ae15f78f9c Merge pull request #27995 from overleaf/slg-license-allocated-text-2
[web] change text for 1 license

GitOrigin-RevId: 4bb7527c39b587830aa40018f28c60abb3238ff0
2025-08-20 08:05:47 +00:00
Brian Gough
f5dbbadf79 add option to disable link sharing (#27626)
* add option to remove link-sharing from backend

* restrict make link-sharing in the frontend based on capability

* extend e2e project-sharing tests to cover OVERLEAF_DISABLE_LINK_SHARING=true

* throw an error when link sharing is disabled in TokenAccessHandler

* throw errors when attempting to add users to projects with link sharing disabled

* Update server-ce/test/project-sharing.spec.ts

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

* add tests for existing access when link sharing is disabled

* update tests to specify access restrictions for read-only and read-write link shared projects

* [web] block access to legacy public project with link-sharing disabled

---------

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 5f194dbcb790e973e427c58a3a4a738a5dd74cb4
2025-08-20 08:05:33 +00:00
Simon Gardner
0138ae0dff Merge pull request #27979 from overleaf/slg-license-allocated-text
[web] change wording of license allocation text on group members management page

GitOrigin-RevId: eaca68cad1dfc5f486a21497069655b188ab2824
2025-08-19 08:06:10 +00:00
Jakob Ackermann
d697f00525 [web] reduce log noise in CI (#27961)
* [web] reduce noise from CollectPayPalPastDueInvoiceTest

* [web] reduce noise for frontend tests that use Range.getClientRects

* [web] avoid nesting <li> elements in ProjectToolsMoreDropdownButton

RenameProjectMenuItem/CopyProjectMenuItem will return <li> elements.

* [web] avoid clicking on links that navigate away in JSDom

* [web] add mock for location change in JSDom

* [web] add fallback stripe subscription data for test

3.8k lines of log noise!

GitOrigin-RevId: 7adab182487a6c07ac9809c60802e498a0edb0ec
2025-08-19 08:05:50 +00:00
Antoine Clausse
0e6d5dc368 Add utility for converting CIDR ranges to IP ranges (#26904)
* Add utility for converting CIDR ranges to IP ranges

* Add CLI support for IP matcher ranges script

GitOrigin-RevId: 1432bf3efa269c0e8e9d58fce1575bb01d694b2f
2025-08-19 08:05:22 +00:00
Eric Mc Sween
cd64720abe Merge pull request #27903 from overleaf/em-unit-tests-redis
Make Redis available to unit tests

GitOrigin-RevId: 7bd403d9ad4be504a87bc9108d60686e6c2a9fb1
2025-08-18 08:05:40 +00:00
Tim Down
d43f09ca4f Merge pull request #27798 from overleaf/td-project-list-frontend-tests-fix
Fix and reinstate project list front-end tests

GitOrigin-RevId: 5f9343a56a5cf6e4da04c161b9f17b9282fdccbb
2025-08-18 08:05:29 +00:00
Antoine Clausse
40772ef819 [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
Liangjun Song
b9fc80f503 Merge pull request #27800 from overleaf/ls-support-create-stripe-customer-from-admin-panel
Support creating Stripe customer from admin panel

GitOrigin-RevId: 3e23008e1f4690e6f3737b5689e20958bf468f82
2025-08-15 08:05:34 +00:00
John Lees-Miller
aa10bc92af Merge pull request #27890 from overleaf/jlm-spam-safe-email
Apply new spam check to email address

GitOrigin-RevId: 9e204ea75e930455971769a73843d015fc4a9033
2025-08-14 08:06:28 +00:00
David
450041e753 Merge pull request #27884 from overleaf/dp-misc-test-files-typescript
Convert a few miscellaneous test files to typescript

GitOrigin-RevId: 7bdff61098988f9ff20735da213330ba2168b0ad
2025-08-14 08:06:20 +00:00
David
9e6db89311 Merge pull request #27811 from overleaf/dp-file-view-typescript
Convert file-view components and test files to typescript

GitOrigin-RevId: 277aa8fd4f3d06a322dc9d0b372eebefb26fd285
2025-08-14 08:05:43 +00:00
David
ba1245682f Merge pull request #27828 from overleaf/dp-modal-test-typescript
Convert clone project, share project and dictionary modal tests to typescript

GitOrigin-RevId: 058eecef6054a40dff7c3697fcd908bb60e39b6b
2025-08-14 08:05:38 +00:00
David
38d4ac9842 Merge pull request #27806 from overleaf/dp-file-tree-modals-typescript
Convert FileTree modal components to typescript

GitOrigin-RevId: 8dde8dc0d27aa545a300f4be939eb83e6963ad5d
2025-08-14 08:05:34 +00:00
Mathias Jakobsen
05bf74cf94 Merge pull request #27790 from overleaf/mj-chat-typescript
[web] Convert remaining chat frontend and tests to typescript

GitOrigin-RevId: 6b2b485433e0a4530f00496e7ecdd49d9eb450af
2025-08-14 08:05:23 +00:00
Mathias Jakobsen
49ac21087b Merge pull request #27804 from overleaf/mj-left-menu-tests-typescript
[web] Convert editor-left-menu tests to typescript

GitOrigin-RevId: 8b12fc6dfea387a30e6fe13d117ed623e3d1840b
2025-08-14 08:05:19 +00:00
Antoine Clausse
9774d9048c [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
2025-08-14 08:05:00 +00:00
Christopher Hoskin
ae602208f1 Merge pull request #27860 from overleaf/lg-spam-safe
Add spam check for incident

GitOrigin-RevId: 752180f7507e32219cc5faaef5d48fdc0003e889
2025-08-13 08:07:10 +00:00
Andrew Rumble
160e82a732 Combine implementations of hasAdminCapability
GitOrigin-RevId: a847c9182c018524c96726fe30e501763904b82e
2025-08-13 08:06:58 +00:00
Andrew Rumble
cce55cf3d8 Add authorization helper for admin capabilities
GitOrigin-RevId: fbf28c89500481e379db6c49512876d867478eb7
2025-08-13 08:06:39 +00:00
Jakob Ackermann
d055f01c00 [web] add config option for custom maintenance message (#27618)
GitOrigin-RevId: e01eebecce780af6e9e3f8b82321cb7776d414e2
2025-08-13 08:06:12 +00:00
David
7b230eb8ed Merge pull request #25598 from overleaf/dp-proptypes-misc
Convert HotkeysModal components to Typescript

GitOrigin-RevId: c2cf7a3a33afeb996650faa6e3ed91c4fe14ef1a
2025-08-12 08:06:35 +00:00
roo hutton
eab0e40ba4 Merge pull request #27742 from overleaf/rh-odc-rm-skip
Remove skip button from ODC form

GitOrigin-RevId: b3974e041ab7fa5f28c2d5eb5176510616d50127
2025-08-12 08:06:12 +00:00
roo hutton
6c185cd700 Merge pull request #27670 from overleaf/rh-stripe-pause-addons
Prevent buying add-on while subscription is paused

GitOrigin-RevId: b8cfbbaa05a1031bedf37edf7b1ded2252eb6906
2025-08-12 08:06:08 +00:00
roo hutton
ec0f719307 Merge pull request #27391 from overleaf/rh-stripe-pause-anchor
Reset billing cycle when resuming paused Stripe subscription

GitOrigin-RevId: 44f7aa4d3eeaab7622e97b0178fe7d6c7cccae50
2025-08-12 08:06:04 +00:00
Miguel Serrano
e8e319d231 [web] Clean up group-audit-logs split test (#27614)
GitOrigin-RevId: e22183820e418cabc83cf2619c2c10cf4f82d3b9
2025-08-12 08:05:39 +00:00
ilkin-overleaf
29249c55a2 Merge pull request #27680 from overleaf/ii-domain-capture-get-user-affiliations
[web] Get domain capture info when getting user affiliations

GitOrigin-RevId: 475024cda072c45e548407dfdb36a772f845ac2b
2025-08-11 08:06:26 +00:00
ilkin-overleaf
222ecb55d6 Merge pull request #27641 from overleaf/ii-domain-capture-page
[web] Create domain capture page

GitOrigin-RevId: df16ba2cac683d315979be69f63e160ec402020b
2025-08-11 08:06:21 +00:00
Rebeka Dekany
d751b88e6b Bootstrap files and folders cleanup (#27692)
* Remove icons folder

* Create folders for badge, button, and dropdown components

* Remove Bootstrap 5 from test

* Rename `getBootstrap5Breakpoint` to `getBootstrapBreakpoint`

* Cleanup and update BS 5 comments

* Move components to the shared folder

* Rename `tooltips-bs5` to `tooltip`

* Remove `-bs5` suffix

* Fix path

* Delete BS3 version file

* Rename `_form_marketing-bootstrap-5` to `_form_marketing`

* Delete BS3 version file

* Rename `_contact_general_modal-marketing-bootstrap-5` to `_contact_general_modal-marketing`

* Delete BS3 version file

* Rename `_contact_modal-marketing-bootstrap-5` to `_contact_modal-marketing`

* Delete BS3 version file

* Rename `thin-footer-bootstrap-5` to `thin-footer`

* Delete BS3 version file

* Rename `language-picker-bootstrap-5` to `language-picker`

* Rename `fat-footer-react-bootstrap-5` to `fat-footer-react`

* Delete BS3 version file

* Rename `navbar-marketing-bootstrap-5` to `navbar-marketing`

* Rename `navbar-marketing-react-bootstrap-5` to `navbar-marketing-react`

* Delete BS3 version file

* Rename `layout-website-redesign-cms-bootstrap-5` to `layout-website-redesign-cms`

* Source format

* Fix path

GitOrigin-RevId: cf0f5db7c84cf545c69213dcc271d9ff17fe5db7
2025-08-11 08:06:16 +00:00
Domagoj Kriskovic
bd8493dba6 [dsmp] Add acceptChanges notification (#27555)
* [dsmp] moved redis functions to RedisStreamManager

* use getEventStream generator function

* [dsmp] moved redis functions to RedisStreamManager

* [dsmp] Add acceptChanges notification

* rename to acceptedChanges

* cleanup after rebasing parent branch

GitOrigin-RevId: c7e100f55503e52b146bcc07deb3e483250b66f8
2025-08-11 08:05:37 +00:00
Antoine Clausse
422e892231 [web] Map admin capabilities to project PrivilegeLevels (#27488)
* Add capability `copy-project`

* Check `copy-project` (frontend)

* Update tests

* Suggestion: map `modify-project`-`PrivilegeLevels.OWNER` and `view-project`-`PrivilegeLevels.READ_ONLY`

* Suggestion: remove capability `copy-project`. Use `view-project` instead

* Revert unrelated changes

* Add tests on AuthorizationManager when `adminRolesEnabled`

* Update `Modules.promises.hooks.fire` stubs with `.withArgs('getAdminCapabilities')`

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

* Use `getAdminCapabilities` from AdminAuthorizationHelper.js

---------

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: 61167509c4a035c99831a5b0346347c2e6b5fae0
2025-08-08 08:07:59 +00:00
Jessica Lawshe
f1c59be2d2 Merge pull request #27637 from overleaf/jel-remove-unused-group-sso
[web] Use `providerId` for group SSO and remove unused `universityId`

GitOrigin-RevId: 0928cdfee78cae5cdede57159b9968c15e26f27c
2025-08-08 08:07:34 +00:00
Mathias Jakobsen
35e8493934 Merge pull request #27630 from overleaf/mj-ai-settings-widget
[web] Update AI section of account settings page

GitOrigin-RevId: 217494ec10e686391ef46199e8cdaf900d762950
2025-08-08 08:07:05 +00:00
Mathias Jakobsen
9839dc57b3 Merge pull request #27620 from overleaf/mj-remove-ai-assistant-notification
[web] Remove AI Assist notification

GitOrigin-RevId: e3ffcac233eb77d215bff8af7e35f7fdecacf29a
2025-08-08 08:07:00 +00:00
Mathias Jakobsen
9b601774fc Merge pull request #27608 from overleaf/mj-beta-colours
[web] Update beta badge colours

GitOrigin-RevId: ffa08940a3133e09f4b14d964ac58443ba5cf4e3
2025-08-08 08:06:47 +00:00
Rebeka Dekany
c9a1ecd060 Remove Bootstrap version 3 (#27420)
* Remove bootstrap-3 entrypoint

* Rename bootstrap-5 entrypoint to bootstrap

* Restore entrypoints

* Remove `bootstrap-5` and `bootstrap-3` entrypoints and a single `bootstrap.ts` file is now the default entrypoint

* Update `bootstrap-5` component imports to `bootstrap`

* Update `bootstrap-5` CSS imports to `bootstrap`

* Remove the `isBootstrap5` utility

* Remove `bootstrapVersion`

* Remove `ol-bootstrapVersion`

* Remove getCssThemeModifier

* Update path and rename

* Source format

* Remove Bootstrap v3 and Bootstrap v5 alias npm packages

* Remove bootstrap argument

* Remove unused files

* Update with the latest split tests

* Remove remaining bootstrap5PageStatus

* Update path

GitOrigin-RevId: 7acda2f80114d2de8699e1f06729a2a29218e284
2025-08-08 08:06:00 +00:00