Commit graph

25933 commits

Author SHA1 Message Date
yu-i-i
570ca81ec7 Fix template publishing to align with upstream project context changes 2025-07-22 19:07:41 +02:00
yu-i-i
726798d911 Fix missing Templates link on login page 2025-07-22 14:19:29 +02:00
yu-i-i
96051b211d Template Gallery: replace markdown-it with marked 2025-07-22 14:19:29 +02:00
yu-i-i
9b923b4332 Refactor Template Gallery; resolves #38 and #39
- Replace free-text license input with a select box
- Improve visual presentation of modals and enhance keyboard interaction
2025-07-22 14:19:29 +02:00
yu-i-i
a2a141bdd9 Make Template Gallery optional; rename environment variables 2025-07-22 14:19:28 +02:00
yu-i-i
901413e4f1 Add Template Gallery support 2025-07-22 14:19:28 +02:00
Jakob Ackermann
0546fb7233 [third-party-datastore] improve error handling (#26881)
* [third-party-datastore] use generic serializer for dropboxError

The `err` serializer will not pick up all the dropbox fields.

Co-authored-by: Thomas Mees <thomas.mees@overleaf.com>

* [third-party-datastore] handle user_suspended like insufficient_space

Unlink dropbox and display a notification (same key to clear later).

Co-authored-by: Thomas Mees <thomas.mees@overleaf.com>

* [third-party-datastore] skip retries when rejected with disallowed_name

Co-authored-by: Thomas Mees <thomas.mees@overleaf.com>

* [web] sort translations

* [web] update copy for dropbox_unlinked_because_suspended

Co-authored-by: Kamal Arkinstall <kamal.arkinstall@overleaf.com>

---------

Co-authored-by: Thomas Mees <thomas.mees@overleaf.com>
Co-authored-by: Kamal Arkinstall <kamal.arkinstall@overleaf.com>
GitOrigin-RevId: 8fbb9074d1d6eb879e904d79dd4b2a2c952ff902
2025-07-22 08:07:13 +00:00
Jakob Ackermann
b1880ba64d [monorepo] upgrade tough-cookie in request to latest version (#27249)
GitOrigin-RevId: 9096e05d2c337c3d3a9b4ca6efec8fd40c51a622
2025-07-22 08:07:08 +00:00
Jakob Ackermann
082121d3da [web] reject upload requests without a file path (#27156)
* [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
2025-07-22 08:07:03 +00:00
Jakob Ackermann
81f0807fc6 [web] prepare filestore migration for Server Pro/CE (#27230)
* [web] prepare filestore migration for Server Pro/CE

* [history-v1] remove unused USER_FILES_BUCKET_NAME env var from script

* [server-ce] tests: write default docker-compose.override.yml on startup

* [server-ce] tests: extend access logging of host-admin for response

* [server-ce] tests: test text and binary file upload

* [server-ce] tests: add tests for filestore migration

* [web] simplify feature gate for filestore/project-history-blobs logic

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [server-ce] test: fix flaky test helper

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: f89bdab2749e2b7a49d609e2eac6bf621c727966
2025-07-22 08:06:58 +00:00
Jakob Ackermann
bf43d4f709 [history-v1] make back_fill_file_hash_fix_up compatible with Server Pro (#27280)
* [history-v1] move MockFilestore into shared place

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [history-v1] make back_fill_file_hash_fix_up compatible with Server Pro

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: 70ea57e1503031d9f14dcd60c4c110e746450587
2025-07-22 08:06:41 +00:00
David
ae3f63d37f Merge pull request #27209 from overleaf/dp-collaborator-colour
Adapt online user and chat user colors based on luminance

GitOrigin-RevId: 1b0c843147ee3dc585866bc491a7c7613cb00e70
2025-07-22 08:06:32 +00:00
Antoine Clausse
30b0cabbbc [web] Update tests to add emails with 6-digits flow (#27076)
* 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
2025-07-22 08:06:23 +00:00
Tim Down
2f427ef0e0 Merge pull request #27229 from overleaf/td-group-pricing-select
Allow clicks on icon in group plans select lists to open the select

GitOrigin-RevId: d54b27851cb8b5541d71c48ff815d52cf99db16f
2025-07-22 08:06:10 +00:00
Tim Down
0778bab910 Merge pull request #27254 from overleaf/td-project-dashboard-cookie-banner
Implement React cookie banner on project dashboard

GitOrigin-RevId: 95d2778d7ce7cb3054a06b06486b815a3453a623
2025-07-22 08:06:05 +00:00
Domagoj Kriskovic
d5b5710d01 Add docModified hook in ds-mobile-app module (#27196)
* Add docModified hook in ds-mobile-app module

* use Object.entries when iterating over promises

* avoid project lookup

* update tests

GitOrigin-RevId: 88676746f56558a97ce31010b57f5eeb254fefef
2025-07-22 08:05:56 +00:00
Domagoj Kriskovic
868d562d96 Support password-fallbackPassword array in requireBasicAuth (#27237)
GitOrigin-RevId: 33b15a05996bfa0190041f347772867a9667e2ca
2025-07-22 08:05:51 +00:00
Andrew Rumble
5d79cf18c0 Define all initial roles
GitOrigin-RevId: ad613bad4d8a47e327281e90b5475e989a3ccec4
2025-07-22 08:05:42 +00:00
Christopher Hoskin
7ecee2e0aa Merge pull request #27255 from overleaf/revert-27252-revert-26843-csh-issue-26608-mongo8-dev-ci
Revert "Revert "Upgrade the dev environment and CI to mongo 8""

GitOrigin-RevId: 5074b012504e65240017f1fde9b0d8d04c7b8b61
2025-07-22 08:05:25 +00:00
Christopher Hoskin
f4dc8f7ebc Merge pull request #27252 from overleaf/revert-26843-csh-issue-26608-mongo8-dev-ci
Revert "Upgrade the dev environment and CI to mongo 8"

GitOrigin-RevId: f2145812a5c1cf8d3d3ac31c76cc4aed4ea9d46d
2025-07-21 08:05:01 +00:00
Christopher Hoskin
456f751a18 Merge pull request #26843 from overleaf/csh-issue-26608-mongo8-dev-ci
Upgrade the dev environment and CI to mongo 8

GitOrigin-RevId: 5fc33863094ea2bdb9235372efdc7d0cb492c34a
2025-07-21 08:04:57 +00:00
Jakob Ackermann
48df8c9f38 [server-ce] reduce verbose output from cron jobs (#27240)
GitOrigin-RevId: 8a2eda551796e62af6fddf80a3ce8cf37ec309d4
2025-07-21 08:04:50 +00:00
Miguel Serrano
7540bc9cbe Merge pull request #27202 from overleaf/msm-fix-pricing
[web] Remove group size limits for additional licenses

GitOrigin-RevId: d48976ccd72ec5e99249f80ab5d3e9e85e089b18
2025-07-18 08:07:17 +00:00
David
5aacccc9d0 Merge pull request #27138 from overleaf/dp-overleaf-dark
Add overleaf dark editor theme

GitOrigin-RevId: bd8cdbcc7ad6b56078611b7c2ab69008ea578ae7
2025-07-18 08:07:06 +00:00
David
3fe4cd31b9 Merge pull request #27203 from overleaf/dp-overleaf-dark-theme-name
Change name of dark overall theme from "Default" to "Dark"

GitOrigin-RevId: 6928e4779c433e55525becfb5ba3f07a5b3847d3
2025-07-18 08:07:02 +00:00
David
8d8142ba2b Merge pull request #27205 from overleaf/dp-persist-rail-tab
Persist currently selected rail tab on refresh

GitOrigin-RevId: a609bed93340d950a1fba8358fd5ed20afe6a4ce
2025-07-18 08:06:57 +00:00
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
Andrew Rumble
71a33925b6 Update types to match usage
GitOrigin-RevId: c3d175ba804bcb27613adf6604b9a45b714ee531
2025-07-18 08:06:26 +00:00
Antoine Clausse
98af0e3d82 [web] In tests, update email confirmation to use the 6-digits flow (#27069)
* Rename `sendExistingSecondaryEmailConfirmationCode` to `sendExistingEmailConfirmationCode`

* Deduplicate error handling into `throwIfErrorResponse`

* Update `userHelper.confirmEmail` to use the 6-digits flow

GitOrigin-RevId: 91bdf7b185407b58520ca6b2aa1a7c71bdd23bc8
2025-07-18 08:06:18 +00:00
Brian Gough
5208ad39ec Merge pull request #27173 from overleaf/bg-filestore-migration-remove-backups
remove backup code from back_fill_file_hash script and tests

GitOrigin-RevId: 364eefc47670e6e7f2314de810ea259b609ff976
2025-07-18 08:06:14 +00:00
David
2e82852ed0 Merge pull request #27125 from overleaf/ae-extension-exports
Add CodeMirror history-related exports to `UNSTABLE_editor:extensions` event

GitOrigin-RevId: 015a19f8b97075ee441dda1d42e19d7f81804ed7
2025-07-18 08:06:06 +00:00
David
b0776da02c Merge pull request #27119 from overleaf/dp-select-error-text
Make error log header text selectable

GitOrigin-RevId: f3844d20bb11abf32ee053da763531c39d63a543
2025-07-18 08:06:02 +00:00
David
ec2ab62f4d Merge pull request #27171 from overleaf/dp-make-a-copy
Update copy of copy project option

GitOrigin-RevId: 3d1cc544f3945f55600f0daf1021b07de9d207bc
2025-07-18 08:05:58 +00:00
David
be4a11484f Merge pull request #27172 from overleaf/dp-file-menu-settings
Add settings option to file menu

GitOrigin-RevId: a5ad0cecad5b7896185a8b9c91364c7904961438
2025-07-18 08:05:53 +00:00
David
97eceb9c58 Merge pull request #27174 from overleaf/dp-subscription-settings
Add subscription option to settings modal

GitOrigin-RevId: 5f38db41c1d4f5727d56e2d0a4e0740e83114f15
2025-07-18 08:05:49 +00:00
David
63ca134fc5 Merge pull request #27182 from overleaf/dp-file-outline-spacing
Fix nesting of file outline

GitOrigin-RevId: b18e5eca9bdfb2c01c244e3843d0ae38041a7378
2025-07-18 08:05:45 +00:00
David
ee8e1915ab Merge pull request #27183 from overleaf/dp-file-tree-open-state
Persist rail tab isOpen state

GitOrigin-RevId: f1cbaa80fecd10953e9be61a993d69bd2c3c7915
2025-07-18 08:05:41 +00:00
Andrew Rumble
f054a5658f Run npm install with new npm version
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 8d81e73f528c34ad8df8b09716198dbaeebee23f
2025-07-18 08:05:33 +00:00
Andrew Rumble
5df6047fd8 Add npm engines entry
GitOrigin-RevId: 4f5ba34447d339cebba654835045c3eff1e23b39
2025-07-18 08:05:28 +00:00
Andrew Rumble
29d9408a69 Add vitest check when initialising redis
This is similar to the Mocha checks and will error if a connection is
attempted.

GitOrigin-RevId: 35e73cb56dc7c72393c55f40b6c18e9aaf74ab50
2025-07-18 08:05:14 +00:00
Tim Down
9c16a85295 Merge pull request #24030 from overleaf/td-bs5-remove-font-awesome
Remove Font Awesome in BS5

GitOrigin-RevId: 3ee9b136ac9ecda57ba9985d1da7d7a7e6b275e6
2025-07-18 08:05:06 +00:00
Brian Gough
5669a7d1c8 Merge pull request #27147 from overleaf/bg-filestore-migration-for-server-pro-II
add support for fetching files via http from filestore in back_fill_file_hash script and tests

GitOrigin-RevId: 8dea6383ed6fe9ee6786a5695e2deee93b1cdd84
2025-07-17 08:05:30 +00:00
MoxAmber
93c6353b90 Merge pull request #27120 from overleaf/as-compile-timeout-date-change
[web] Update compile timeout enforcement date

GitOrigin-RevId: 9c6957bad440a381e954e1f4de98d603d31aef42
2025-07-17 08:05:05 +00:00
Jakob Ackermann
9720413218 [web] add support for pug caching when running E2E tests in dev-env (#27073)
GitOrigin-RevId: bbb53723bd1bc22db5b3d440539f1624a905341f
2025-07-16 08:06:07 +00:00
Jakob Ackermann
8c39add865 [clsi-cache] meter ingress and egress bandwidth (#27143)
* [mics] fix "app" label in clsi-cache metrics in dev-env

* [clsi-cache] validate filePath when processing file

* [clsi-cache] meter ingress and egress bandwidth

Files are downloaded directly from nginx, hence we cannot meter egress
in clsi-cache easily.

GitOrigin-RevId: 24de8c41728f0e9c984113c1470dec6153e75f20
2025-07-16 08:05:59 +00:00
M Fahru
3e29af53a8 Merge pull request #27058 from overleaf/mf-re-add-sticky-header-plans-page
[web] Re-add sticky header for mobile plans table on bs5 version of the plans page

GitOrigin-RevId: 2c97e9983f8d0e1beb312c135558758a7f4f2ec0
2025-07-16 08:05:48 +00:00
Eric Mc Sween
1833bd3d00 Merge pull request #27126 from overleaf/em-fix-persist-changes
Fix chunk creation over a one change chunk

GitOrigin-RevId: aecae334849522975b83c77224ee27db64de4ed8
2025-07-16 08:05:40 +00:00
Liangjun Song
1daa49d9d2 Merge pull request #27093 from overleaf/ls-support-3ds-in-group-plan-update-flows
Support 3DS verification in group plan update flows

GitOrigin-RevId: 3206f612e5699f39ac44864daf6610da2956e6ca
2025-07-16 08:05:25 +00:00
Liangjun Song
9e22ed9c3f Merge pull request #26934 from overleaf/ls-support-individual-to-group-plan-upgrade
Support individual to group plan upgrade in Stripe

GitOrigin-RevId: 24cbe7bd6de86a4d9410e1abc49b6457e0871f40
2025-07-16 08:05:20 +00:00
David
1375f695d3 Merge pull request #27079 from overleaf/mj-base-theme-extraction
[web] Extract breadcrumbs theme to constant

GitOrigin-RevId: 55d65597a85a7da5cf5506caf8e13d4e2977fb1f
2025-07-16 08:05:16 +00:00