* 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
* [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
* 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
* [web] reject upload requests without a file path
* [web] update copy on error message and link to contact form
Co-authored-by: Kamal Arkinstall <kamal.arkinstall@overleaf.com>
* [web] update copy: move dot to the end
---------
Co-authored-by: Kamal Arkinstall <kamal.arkinstall@overleaf.com>
GitOrigin-RevId: ba1ee81a91b046540caeb2f3f3da0e305611b35f
* In tests, post to `/user/emails/secondary` (6-digits) instead of the deprecated `/user/emails` (link-token)
* Update `addEmailAndConfirm` so it calls the right endpoint
* Remove unnecessary `userId` from `confirmEmail` and `addEmailAndConfirm` args
* Use `updateUser` to add unconfirmed email to user
* Confirm, then unconfirm emails, in order to test on unconfirmed emails
* Lowercase emails in `unconfirmSecondaryEmail`, so they get matched correctly
* Update UserEmailsTests.mjs with 6-digits flow, fetch, no `npm:async`
GitOrigin-RevId: 71b9ed65daebea5f22272240559caab375515f0c
* Rename `sendExistingSecondaryEmailConfirmationCode` to `sendExistingEmailConfirmationCode`
* Deduplicate error handling into `throwIfErrorResponse`
* Update `userHelper.confirmEmail` to use the 6-digits flow
GitOrigin-RevId: 91bdf7b185407b58520ca6b2aa1a7c71bdd23bc8
* Add script to remove emails with commas and replace them emails to support with encoded former emails
* Enhance RemoveEmailsWithCommasScriptTest to verify unchanged user data
GitOrigin-RevId: 6961995f2a143ac1c53bc2eeb183808a4be7dd02
* [misc] freeze time before any other unit test setup steps
Freezing it after other work (notably sandboxed-module imports) will
result in flaky tests.
* [web] update the projects lastUpdated timestamp when changing file-tree
GitOrigin-RevId: b82b2ff74dc31886f3c4bd300375117eead6e0cd
* Fix `fix_malformed_filetree`'s `fixName`
* Fix findUniqueName with missing names in siblings
* Add test showcasing another bug: shifted arrays in filetree folder
* Update `removeNulls` to use `_id`
* Update services/web/app/src/Features/Project/ProjectLocator.js
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Add FIXME about file names uniqueness
* Rename `obj` to `project`
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 3ed795ae0621800603395f7b50626ac89c39199d
* Create script: remove_unconfirmed_emails.mjs
* Update script remove_unconfirmed_emails.mjs after pairing
Co-authored-by: Rebeka <rebeka.dekany@overleaf.com>
* Add user counts. Add timing
* Revert previous changes: just remove the fully unconfirmed emails
* Add tests on scripts/remove_unconfirmed_emails.mjs
* Update audit log so `removedEmail` is a string and doesn't break the admin-panel audit logs list
* Update remove_unconfirmed_emails to have a `--generate` and a `--consume` mode
* Update tests on remove_unconfirmed_emails
* Add tests checking that `--consume` doesn't delete any email
* Update script so `--consume` checks that emails shouldn't be deleted again!
* Update CSV path to `/tmp/...`
* Add test cases: deleted users, deleted email, comma in email
---------
Co-authored-by: Rebeka <rebeka.dekany@overleaf.com>
GitOrigin-RevId: 8c60b56bcdfa33bc6143d66c32a5f430fb76f6d7
* [web] tests: rename User.upgradeFeatures to User.upgradeSomeFeatures
The upgrades features do not match with any plan.
* [web] make user feature changes in tests more reliable
* [web] fix schema for featuresOverride in tests
* [web] log in after upgrading features
GitOrigin-RevId: ac5b19c798712926c118b221c553540b413802cd
* [web] avoid setting up users more than once in tests
* [web] tests: simplify user exists check in User.setExtraAttributes
GitOrigin-RevId: 4c526df7c933a38ab93d7760efbd0a9490d5582a