Commit graph

7673 commits

Author SHA1 Message Date
Jakob Ackermann
d655cb129a Merge pull request #20168 from overleaf/jpa-email-fallback-info
[web] log emails on level INFO from fallback transport

GitOrigin-RevId: a1f63e302cf6c5fcfa82b85ff2c79182fdc58945
2024-08-30 08:04:42 +00:00
Rebeka Dekany
f6213de83b Merge pull request #20140 from overleaf/rd-footer-react
[web] Migrate the footer to React

GitOrigin-RevId: 9571d7b3ef9a267fb8250956f821b1ee34ce07c7
2024-08-30 08:04:29 +00:00
M Fahru
666c10860e Merge pull request #20151 from overleaf/mf-add-canonical-light-design-plans
[web] Add necessary config for canonical link and suppressing alternate links for different languages in plans light design

GitOrigin-RevId: f903b3c1eb31276ea8ffadc43ac240a4c16bcbbc
2024-08-29 08:04:51 +00:00
ilkin-overleaf
446e19424d Merge pull request #20105 from overleaf/ii-bs5-ide-page-setup
[web] Initialize BS5 in ide page

GitOrigin-RevId: 96ceb77ec68f86b9946fc2a2bafb54b96f2a116e
2024-08-28 11:35:17 +00:00
Jimmy Domagala-Tang
f64b7a56c4 Merge pull request #19965 from overleaf/jdt-fake-door-cleanup
feat: clean up uneeded fake door pages and routes
GitOrigin-RevId: 1d7ad3d43fda0f7852e3e5abbe5a8287d73d910d
2024-08-27 08:05:01 +00:00
Jakob Ackermann
a98fefd24b Merge pull request #20129 from overleaf/jpa-handle-partial-deletion
[misc] improve handling of document deletion

GitOrigin-RevId: bd6b225b91ab38365e9ff272c50ece995e767bf2
2024-08-27 08:04:53 +00:00
Thomas
95aa79e95d Merge pull request #20089 from overleaf/tm-link-sharing-enforcement-in-frontend
Make ol-linkSharingEnforcement available to the frontend

GitOrigin-RevId: b64ce29f528c5b02c0cee400c73dc364d8e6da47
2024-08-27 08:04:40 +00:00
Liangjun Song
3f1edfc1c9 Merge pull request #19954 from overleaf/ls-access-token-gradual-rollout-cleanup
Update git bridge modal for pw auth deprecation

GitOrigin-RevId: 2e764922bf350ddcba29bf9f3baa220ed1f48e40
2024-08-26 08:05:15 +00:00
Jakob Ackermann
1459ae9b65 Merge pull request #20082 from overleaf/jpa-limit-local-storage
[web] disable local storage of ro-mirror for admin site/debug copies

GitOrigin-RevId: 33a65cb17a09e4e7f9b5e8e4fce1b4e1ba6c38f8
2024-08-23 08:04:53 +00:00
Alexandre Bourdin
4997b7f1ee Merge pull request #20062 from overleaf/ab-saas-authentication-module-renaming
[web] Rename overleaf-integration module to saas-authentication

GitOrigin-RevId: 7d69e06a19da9855fa9a0962114ad97b45ad8875
2024-08-23 08:04:43 +00:00
Thomas
abf04c5d6c Merge pull request #20036 from overleaf/tm-collab-limit-link-sharing
Enforce collaborator limit for link sharing

GitOrigin-RevId: b724dca0c616ef15e5bd6d07e9d898d34dd46acd
2024-08-22 14:01:34 +00:00
Thomas
98a914bb94 Merge pull request #20034 from overleaf/tm-collab-limit-edit-invites
Enforce collaborator limit when accepting project invites

GitOrigin-RevId: 94f281113fe7c7b6d0a5ef43e11ab579400d9e56
2024-08-22 14:01:30 +00:00
roo hutton
5e2662adc4 [web] Enforce collaborator limit (#19619)
* Enables collaborator limit enforcement

* Add pendingEditor_refs for editors downgraded during limit enforcement

* Add isPendingEditor to useEditorContext

---------

Co-authored-by: Thomas Mees <thomas.mees@overleaf.com>
GitOrigin-RevId: b622213f6282ccd8ee85a23ceb29b8c6f8ff6a96
2024-08-22 14:01:25 +00:00
Jakob Ackermann
989c48978a Merge pull request #20067 from overleaf/jpa-fix-old-blob-download
[web] project-history expects history-v1 id in blob requests

GitOrigin-RevId: d9170a12fc6070811c188b346dbac32accabbfd7
2024-08-22 14:01:12 +00:00
Jessica Lawshe
753d46a755 Merge pull request #20050 from overleaf/jel-contact-us-modal
[web] Open correct modal from plans FAQ

GitOrigin-RevId: aac42e88aefbfa71bda1869056a202d5536a0e33
2024-08-22 08:06:02 +00:00
Jessica Lawshe
eacd21adae Merge pull request #20049 from overleaf/jel-plans-accessibility
[web] Add tab container role for accessibility on plans page

GitOrigin-RevId: 697aba9fc64c2f08463c4d4e85a48b4cc1272e26
2024-08-22 08:05:57 +00:00
Jessica Lawshe
493bdc92d5 Merge pull request #20048 from overleaf/jel-plans-light-touch
[web] Plans page light touch redesign updates

GitOrigin-RevId: 71bb1a594e1767fe406bb63334534fd73b3d368a
2024-08-22 08:05:53 +00:00
Jessica Lawshe
cabf9b40d8 Merge pull request #20028 from overleaf/jel-plans-mobile
[web] Fix margin for card on student tab on mobile

GitOrigin-RevId: e9f4e61a85af99139cabfce7977c824bdfbcfd1f
2024-08-22 08:05:48 +00:00
Jessica Lawshe
b5a8481f51 Merge pull request #20020 from overleaf/jel-translation-fix
[web] Add missing "by" to translation

GitOrigin-RevId: aea106928b62b46753af845e37280297058cc42e
2024-08-22 08:05:40 +00:00
Jessica Lawshe
8d63d56a6f Merge pull request #19992 from overleaf/jel-cms-quote
[web] Add new quote option to CMS

GitOrigin-RevId: 5c66620eb755fc9af9c8ba22d64ff969c5c140ca
2024-08-22 08:05:30 +00:00
Jakob Ackermann
577497b655 Merge pull request #19842 from overleaf/jpa-ro-mirror-on-client
[misc] add readonly mirror of full project content on the client

GitOrigin-RevId: 940bd93bfd587f83ca383d10fc44579b38fc3e88
2024-08-22 08:05:13 +00:00
Jakob Ackermann
de842c61c3 Merge pull request #19863 from overleaf/jpa-log-noise-pro
[web] gracefully handle missing "getUserGroupsSSOEnrollmentStatus" hook

GitOrigin-RevId: 3e37a9caf4ccc54ec89c9a274bd4a55c503a3f43
2024-08-22 08:05:08 +00:00
Tim Down
d5643d53b3 Merge pull request #18996 from overleaf/td-bs5-nav-react
Main navigation React component

GitOrigin-RevId: c99a4b4a2f6fd02618689f829681118b2b64aa8d
2024-08-22 08:05:03 +00:00
Miguel Serrano
2296287e61 Merge pull request #19947 from overleaf/msm-ce-survey
[web] Temporary CE Survey

GitOrigin-RevId: 874febba1d61f7b9ba333b2de399c9bcc7f3bcc2
2024-08-22 08:04:54 +00:00
M Fahru
41e2d1bba7 Merge pull request #20005 from overleaf/mf-view-events-plans-page
[web] Implement plans page and interstitial payment page view events for plans redesign test

GitOrigin-RevId: 023338acffe149db93b37d94cf06e8102ffcff8f
2024-08-21 08:05:43 +00:00
Mathias Jakobsen
654d96ace6 Merge pull request #19743 from overleaf/mj-restore-project
[web+project-history] Add project version reverting

GitOrigin-RevId: 0f77cec730393187d531c0c6561faaa652bebf29
2024-08-21 08:05:08 +00:00
andrew rumble
777acc4040 Refactor mongodb infra module to remove unneeded code
GitOrigin-RevId: f907753dffd67ed279815693c37498ec255f1353
2024-08-21 08:04:59 +00:00
andrew rumble
da350a52fd Check that we are using same ObjectId as mongoose
GitOrigin-RevId: 95812e15365bea740dfd02215e706f8014239840
2024-08-21 08:04:50 +00:00
andrew rumble
d4cc50bc21 Placate the linter
GitOrigin-RevId: 064d796a5c3c49cfdacee5cf1a461d38f08425b3
2024-08-21 08:04:46 +00:00
andrew rumble
4e2bfd58a1 Handle removal of mongoose callback API for UserMemberships
GitOrigin-RevId: 0bdfaf4bfb357d75ee05513cf524540eef7fcec4
2024-08-21 08:04:42 +00:00
andrew rumble
e08c60424d Allow independent pools to be used for mongo/mongoose
GitOrigin-RevId: c0c7d8e3388fd9402d7b22b70eda9455b4ecc205
2024-08-21 08:04:29 +00:00
andrew rumble
032deaf05c Switch to mongodb-legacy
GitOrigin-RevId: 11e09528c153de6b7766d18c3c90d94962190371
2024-08-21 08:04:24 +00:00
Brian Gough
cb2434d29c Merge pull request #19777 from overleaf/bg-issue19430-implement-wiki-caching
support conditional requests for learn wiki images

GitOrigin-RevId: fb77ab632c325f88dfed1624a5abad8f2e52ee3d
2024-08-19 08:04:44 +00:00
M Fahru
9cf4cd36cf Merge pull request #19942 from overleaf/mf-group-dropdown-connect-button-cta
[web] Connect license dropdown to CTA href and pricing header on new plans page group tab

GitOrigin-RevId: b3bdd05cc3efccc17883205de51232e31ee71c58
2024-08-16 08:04:53 +00:00
M Fahru
5065bb78ea Merge pull request #19904 from overleaf/ds-plans-page-new-design-adding-geo-banners
Plans page new design - Implement geo banner for India and latin america users

GitOrigin-RevId: 4b0ca2e6e290672c5ae1f41cde904a4d48197a33
2024-08-15 08:05:58 +00:00
M Fahru
87e3459563 Fix aria-hidden attribute by adding explicit "true" to its value
GitOrigin-RevId: 173f2e2d18a993ee81506d420b120231e4f40574
2024-08-15 08:04:52 +00:00
Antoine Clausse
8e68f10523 [web] In _deleteV1Account: Add response?.statusCode optional chaining, await request before getting response (#19936)
* Add optional chaining in `response.statusCode` in `_deleteV1Account` error handling

Should fix https://overleaf.sentry.io/issues/5708988236/

* Add another `response?.statusCode`

* Await `V1Api.promises.request` before getting the response

GitOrigin-RevId: 52a156680845516357b11943bee8c33a5a023514
2024-08-15 08:04:44 +00:00
andrew rumble
019562cb5a Update promises to use async functions directly
GitOrigin-RevId: f6a5d235ee259a4cf00f1e8d5c089b2d1d24a842
2024-08-15 08:04:39 +00:00
andrew rumble
7af4980a4d Promisify ProjectEntityUpdateHandler functions
Promisify wrapWithLock

Promisify getDocContext

Promisify updateDocLines

Promisify setRootDoc

Promisify unsetRootDoc

Promisify addDoc and addDocWithRanges

Promisify addFile

Promisify upsertFile

Promisify upsertDocWithPath

Promisify deleteEntity

Promisify deleteEntityWithPath

Promisify mkdirp and mkdirpWithExactCase

Promisify moveEntity

Promisify renameEntity

Promisify addFolder

Promisify convertDocToFile

Promisify resyncProjectHistory

Promisify _addDocAndSendToTpds

Promisify _replaceFile

Promisify _checkFiletree

Promisify _cleanupEntity

Promisify _updateProjectStructureWithDeletedEntity

Promisify _cleanUpDoc and _cleanUpFile

Promisify upsertFileWithPath

Promisify upsertDoc

Promisify _uploadFile

Promisify _addFileAndSendToTpds

GitOrigin-RevId: 56a7de0ae79efedd5ad48abae2db22a4028c0c12
2024-08-15 08:04:30 +00:00
andrew rumble
c4d7da87a6 Move functions to be promisified
Moving these first will make later commits have a cleaner diff. There
are no substantive code changes in the moved functions.

GitOrigin-RevId: 06e0c5bb02f300942c8fbe80e81484c4d717dbc9
2024-08-15 08:04:25 +00:00
Alexandre Bourdin
10ef61a02b Merge pull request #19901 from overleaf/ac-confirm-institution-domain-queue-in-institution-module
[web] Add `start` function to modules. Move `confirm-institution-domain` queue to institution module

GitOrigin-RevId: 0d36ff3dcc529e77c76d72d0a67bbdb9310b42fd
2024-08-14 08:05:39 +00:00
Alexandre Bourdin
61891e3c80 Merge pull request #19861 from overleaf/ab-overleaf-integration-delete-flow
[web] Remove /user/delete override from overleaf-integration

GitOrigin-RevId: 4f679f6835522c2325fe7b0368f58e7a952ee73d
2024-08-14 08:05:30 +00:00
Brian Gough
cf83990459 add tests for unwanted 500 responses from invalid urls (#19612)
* add acceptance tests for bad urls

* fix 500 from health check when smoke test userId is undefined

* handle exception from invalid urls in ExpressLocals middleware

* Add return statement before `next()`

* Cleaned up list of crash_test_urls.txt

* Return 400 instead of 404 on parsing errors

---------

Co-authored-by: mserranom <mserranom@gmail.com>
GitOrigin-RevId: dac35b07d1f12bd9ceb70e3064ec2ef8393f99b5
2024-08-14 08:05:16 +00:00
Davinder Singh
90c32aacee Merge pull request #19869 from overleaf/mf-plans-faq-button-use-material-symbols
[web] Use material symbols on plans FAQ's button

GitOrigin-RevId: 934f3627027a297fa39a835c98ff337f2a93d1d1
2024-08-14 08:04:46 +00:00
Antoine Clausse
fb114a7c44 Merge pull request #19545 from overleaf/ac-remove-login-route-override
[web] Remove `/login` route override from overleaf-integration

GitOrigin-RevId: a22d0698e5039a8e77fb7ebb620500ad40a9a630
2024-08-14 08:04:26 +00:00
Jessica Lawshe
c636089939 Merge pull request #19822 from overleaf/jel-plans-notifications
[web] Show geo banners on light touch redesign of plans page

GitOrigin-RevId: 08ee6827cc16ec9326e5dbb1a165602be9cfe86d
2024-08-13 08:04:38 +00:00
Jessica Lawshe
47ad169781 Merge pull request #19758 from overleaf/jel-modal-light-touch
[web] Update group modal on plans page light touch redesign

GitOrigin-RevId: 26cce2996bed263c46d06b1b1fced8206fc9d8c1
2024-08-13 08:04:33 +00:00
Jessica Lawshe
214f093eb7 Merge pull request #19749 from overleaf/jel-fix-first-feature-row-border
[web] Fix first feature row border radius on light touch plans redesign

GitOrigin-RevId: 2ef5b1cbb13284a95d6c5d9370cd003f4ccf7f48
2024-08-13 08:04:29 +00:00
Jessica Lawshe
c4c36c9cea Merge pull request #19725 from overleaf/jel-interstitial-page-light-touch
[web] Interstitial payment page for light touch redesign

GitOrigin-RevId: ff83df760dd552d001ad8815f0a34cae5e13e6ff
2024-08-13 08:04:25 +00:00
Antoine Clausse
8736bee460 [web] Move confirm_university_domain to institutions module, and /api/clsi/compile/* to publish-modal module (#19797)
* Move `/api/institutions/confirm_university_domain` to institutions module

* Move `confirmDomain` to institutions module

* Move `/api/clsi/compile/*` endpoints to `publish-modal` module

* Move ApiClsiTests to publish-modal module

* Revert move of MockClsiApi. It's still needed in the main acceptance tests

GitOrigin-RevId: b59c2921e03b94546d72d21e60a688eb1ae1d05e
2024-08-12 08:05:16 +00:00
ilkin-overleaf
16cdf5140a Merge pull request #19626 from overleaf/ii-invite-remove-unncecessary-fields
[web] Clean up props exposed to the /invite and /invites endpoints

GitOrigin-RevId: dc4163e04d5785e141d5e322bfb0a626e67d637f
2024-08-12 08:05:04 +00:00
Rebeka Dekany
57b3871c1c Merge pull request #19823 from overleaf/rd-navbar-pug-a11y
[web] Announce buttons as menu items in the navigation bar and allow tabbing within the menu

GitOrigin-RevId: 138fef3369bf5c89487e673ab42c06b7c13bcf48
2024-08-12 08:04:54 +00:00
Alexandre Bourdin
972fbb7c67 Merge pull request #19818 from overleaf/ab-fix-split-test-archived-notification-comment
[web] Skip sending last versions comment with archived test notification

GitOrigin-RevId: 997111220161eaf7588cac8809024ac4a09bc037
2024-08-09 08:04:38 +00:00
M Fahru
b1cfb00e30 Merge pull request #19760 from overleaf/mf-more-than-50-group-member-picker
[web] Create group member picker footer with a link that opens contact sales modal on new plans page

GitOrigin-RevId: 1dc1dce726cc0222bbbef911a016f1eb6a881aeb
2024-08-09 08:04:34 +00:00
Thomas
a16db120c0 Implement free trial limits (#19507)
* Add additional validations for subscription trials

GitOrigin-RevId: 1cb821c62e02d3eaa5b2bcacaee63b6bc7a63311
2024-08-08 08:05:05 +00:00
Alf Eaton
049f8af680 Merge pull request #19684 from overleaf/ae-members-list
Allow all collaborators to access the project `members` endpoint

GitOrigin-RevId: 2e5911146c61f368f85e6b57a9c5f12a35e7b294
2024-08-07 08:05:45 +00:00
Thomas
2ee528a9d2 Merge pull request #19814 from overleaf/tm-link-sharing-project-joined-event-for-treatment
Add project-joined event when adding as Editor via link sharing

GitOrigin-RevId: 40f538376b90a45877859be9e48a0b4c45c9641d
2024-08-07 08:05:12 +00:00
Antoine Clausse
a278e70b27 [web] Fix UpgradePrompt in Editor - Retrieve isMember from userIsMemberOfGroupSubscription (#19810)
* Fix: Retrieve `isMember` from `userIsMemberOfGroupSubscription`

* Inline `userIsMemberOfGroupSubscription` call

GitOrigin-RevId: b8b339bbce3934b0b83bf6d805ab6ef6225d43e7
2024-08-07 08:05:03 +00:00
Jakob Ackermann
e26b6de51b Merge pull request #19740 from overleaf/jpa-linked-file-metadata
[misc] persist linkedFileData in full project history as file metadata

GitOrigin-RevId: f3e8ba947ea34b6796e210a076a248c57188d148
2024-08-06 08:04:44 +00:00
Jakob Ackermann
e85045255c Merge pull request #19644 from overleaf/jpa-remove-window-attributes
[web] goodbye window attributes

GitOrigin-RevId: b15a2cb1d96b657385c4d46dcf80e0269dbd7409
2024-08-06 08:04:39 +00:00
Alf Eaton
0f2aaa6c0c Merge pull request #19668 from overleaf/jpa-file-not-found-404
[web] entity not found when downloading file yields 404

GitOrigin-RevId: e6a2a7cf60f717fae53a42f39efb65f1624f71bb
2024-08-05 08:04:08 +00:00
Domagoj Kriskovic
55d0f51279 [web] Add split test for defaulting LaTeX beginners to visual mode (#19745)
GitOrigin-RevId: 4dff08f0f7f413ba3cdacbe46cf7493eca47657d
2024-08-02 08:05:15 +00:00
Domagoj Kriskovic
0766c91079 Default LaTeX beginners to the Visual Editor (#18917)
* open visual code if user havent used latex before

* test tooltip on code editor switch

* firstTimeLoadedEditor

* track editor.codeEditorOpened value

* lastEditorLoadedDate

* odc data loaded from mongo

* fix a typo

* use tutorial to check if it was dissmised

* use getInactiveTutorials fn

* fix test

* check if code editor was opened

* added translations

* pass classname to tooltip

* use signUpDate instead of lastEditorLoadedDate

* refactor visual fallback value

* use tutorial completed data only for tooltip

* set lastUsedMode in odc form

* safer usedLatex check

* getOnboardingDataValue helper function

* move tooltip to a separate component

* move classname to tooltipProps

* usedLatex in meta tag

* codeEdtiorOpened fallback value

* fix release date year

* fix 24 hours criteria for showing the tooltip

* fix tests

* hide tooltip when code editor is opened

* remove setting lastUsedMode in ODC form

* remove empty comment

* change date for checking signUpDate

* fix linting error

GitOrigin-RevId: 0a57ba3f4717492d4546633571117f667d3a05f8
2024-08-02 08:05:10 +00:00
Miguel Serrano
6721bbb356 Merge pull request #19676 from overleaf/msm-fix-email-support
[CE/SP] Fix email sending and support links

GitOrigin-RevId: faaaacd312d3ec4ccf90bfdefbb62d2701df5cfd
2024-08-01 08:06:16 +00:00
M Fahru
596dd87c5a Merge pull request #19611 from overleaf/ds-plans-page-faq-follow-up-finishing
Website redesign - Plans page FAQ section follow up adding modal

GitOrigin-RevId: fac7f0c676fa36e76842ec3f682d759ebcdbafbe
2024-08-01 08:05:49 +00:00
Jessica Lawshe
28c0ab80ad Merge pull request #19662 from overleaf/jel-light-touch-tabs
[web] Update plan tab buttons for light touch redesign

GitOrigin-RevId: 0ee3e7a9c277097abd32dcae2cc49a1a4b01e6f0
2024-08-01 08:05:37 +00:00
Jessica Lawshe
580111b984 Merge pull request #19638 from overleaf/jel-light-touch-payment-methods
[web] Update payment method section on the plans light touch redesign

GitOrigin-RevId: aa55b888b0d02e39cd907de4a675d61836d6aa01
2024-08-01 08:05:33 +00:00
andrew rumble
8af5fa0378 Upper-case for all methods
This is required by the fetch-api.

GitOrigin-RevId: 641c63ad2fe6b9d01c48c28faf669051de8f3271
2024-08-01 08:05:11 +00:00
andrew rumble
2477ac6c50 Upper case PUT for consistency
GitOrigin-RevId: e3ce6b652ee9cee8a719b56d0dddda2faf575968
2024-08-01 08:05:06 +00:00
andrew rumble
cbf8832908 Fix typos
GitOrigin-RevId: 69477e3d95db2862f745f43d97a6f98430a1973c
2024-08-01 08:05:01 +00:00
andrew rumble
67cb9fc1b3 Separate qs out from url
GitOrigin-RevId: 8a1c45d3d71240e63f78f2f1920b324577eb7e6d
2024-08-01 08:04:56 +00:00
andrew rumble
709982ac65 Switch request out for fetch
GitOrigin-RevId: b011976084d113c250b002c1bae23f6b38a3281c
2024-08-01 08:04:52 +00:00
andrew rumble
2ccd39b2fa Switch to using status over statusCode
This is a difference in the request/fetch APIs.

GitOrigin-RevId: bde9adcf4de2ceaabfd9baae7a93bf2b0b5e5a1e
2024-08-01 08:04:47 +00:00
andrew rumble
0a62bc1239 Fix typo in name of method
GitOrigin-RevId: fe8a2bcf5e577c001c4508b7bb010e1738ccc903
2024-08-01 08:04:42 +00:00
M Fahru
e811436dd4 Merge pull request #19648 from overleaf/mf-remove-strike-plans-page
Convert `strike` to `s` because `strike` was already deprecated

GitOrigin-RevId: 48dc9fe1a20c1b354c0935d313b1fc5f515cd1fa
2024-07-31 08:05:33 +00:00
Jessica Lawshe
223a4efd3d Merge pull request #19618 from overleaf/jel-light-touch-btns
[web] Light touch plans redesign CTAs

GitOrigin-RevId: 7b9be331420044fda08eac563567f1cce4c0c1c2
2024-07-31 08:05:29 +00:00
Jessica Lawshe
9e665c3a10 Merge pull request #19616 from overleaf/jel-light-touch-educational
[web] Light touch plans redesign license picker and `?` icon

GitOrigin-RevId: 071842c37e2129cf62981317f7a23b8cd5410dba
2024-07-31 08:05:24 +00:00
Antoine Clausse
1e36db524f [web] Merge authentication error handling (V1LoginController & AuthenticationController) (#19457)
* Promisify `AuthenticationController.doPassportLogin`

* Update tests `AuthenticationController.doPassportLogin`

* Add test on error handling for `AuthenticationController.doPassportLogin`

* Add test on error handling for `V1LoginController.doLogin`

* Extract error handling to `getErrorObject` function

* Simplify code

* Add `Metrics` calls

* Add `password is too long` in AuthenticationController

* Make `info` object consistent with the rest of the codebase

* Move error handling to `AuthenticationManager.handleAuthenticateErrors`

* Move `handleAuthenticateErrors` to other file

I moved this solely because I didn't manage to test it otherwise

* Update tests

* Remove `preDoPassportLogin` hook call

* Remove test on `preDoPassportLogin`

* Use try/catch block instead of `.catch()`

* Revert "Use try/catch block instead of `.catch()`"

This reverts commit 3475afa93ce4af7ad55c91bfc1d7ad3317600ea5.

* Replace `.catch` by `try/catch`

GitOrigin-RevId: 3fba65c30a2c5fc6e5abcd5b83c52801852ed462
2024-07-31 08:05:07 +00:00
Jimmy Domagala-Tang
837fea03b9 Merge pull request #19448 from overleaf/jdt-experiments-max-subscribers
Enforce a maximum participant cap on experiments

GitOrigin-RevId: 1d9263cd34a3d0c831c0ed43867bb4e6430eb06c
2024-07-30 08:05:34 +00:00
Alexandre Bourdin
5bc5b1af2a Merge pull request #19562 from overleaf/ab-modules-dependencies
[web] Modules dependencies

GitOrigin-RevId: d8bbb25a754f2ed58b1b1e924aa760b87d3135c6
2024-07-30 08:04:36 +00:00
Antoine Clausse
5f2718cf29 [web] Make rate-limit on login consistent, prevent "trim/case bypass" (#19555)
* Replace `LoginRateLimiter.processLoginRequest` call by use of `RateLimiterMiddleware`

* Lowercase the email to avoid rate-limit bypass

* Remove unit test "when the users rate limit"

* Use `EmailHelper.parseEmail` to normalize email in `processLoginRequest`

This should address the `trim()` bypass

* Use `.trim().toLowerCase()` instead of `EmailHelper.parseEmail`

We can't use `EmailHelper.parseEmail`, else it breaks the test (and feature): "with username that does not look like an email"

* Add acceptance test for rate limit

* Add comment on rate limits

* Rename `rateLimiter` to `rateLimiterLoginEmail` for clarity

* Make the login rate limits configurable from the settings

GitOrigin-RevId: cf1c3a416745f2b007c85014a5084570d4a049a7
2024-07-30 08:04:26 +00:00
Antoine Clausse
7212c16dde [web] Fix: sendConfirmationEmail promise (!!!) (#19629)
* Fix `sendConfirmationEmail` promise (!!!)

* Fix: No nested promises, and `sendConfirmationEmail`->`sendReconfirmationEmail`

* Add integration test on `/user/emails/send-reconfirmation`

* Update integration test: use the previously generated token

GitOrigin-RevId: f6386abeb06888351eec22fbcb1d3c614ff5c5c5
2024-07-29 08:04:41 +00:00
Antoine Clausse
afd965c04b [web] Remove overleaf-integration overrides for /user/emails/delete & /user/emails/resend_confirmation (#19438)
* Use hooks to call `clearSamlSession`

* Promisify `UserEmailsController.remove`

* Use hook for `userDeleteEmailMiddleware`

* Remove `/user/emails/delete` override

* Remove "removeRoute of `/user/emails/resend-secondary-confirmation`"

That route isn't defined elsewhere

* Promisify `UserEmailsController.resendConfirmation`

* Promisify `UserEmailsController.sendReconfirmation`

* Use hook for `resendConfirmationEmailMiddleware`

* Remove `/user/emails/resend_confirmation` override

* Promisify `tryDeleteUser`

* Proxy `clearSamlSession` through `SAMLHelper`

* Revert "Use hook for `resendConfirmationEmailMiddleware`"

This reverts commit f028d9c8

* Inject `SAMLMiddleware.resendConfirmationEmailMiddleware` in `/user/emails/resend_confirmation`

* Update `middleware` syntax and grammar

* Update tests

* Use Module middleware instead of hook for `userDeleteEmailMiddleware`

* Remove "promises" export of tryDeleteUser

GitOrigin-RevId: 211e194fc1ef82dc452ee4e837dcddd9b23690a0
2024-07-29 08:04:24 +00:00
Jessica Lawshe
606f9eaec7 Merge pull request #19594 from overleaf/jel-light-touch-table-checkmark
[web] Add new green checkmark to plans light touch redesign

GitOrigin-RevId: f6c38e819fdd784ccf39ab09109a33fcd58f23d8
2024-07-26 08:05:02 +00:00
Jessica Lawshe
1f432ca5a9 Merge pull request #19447 from overleaf/jel-light-touch-table-final-bits
[web] Updates for the light touch redesign of the plans table

GitOrigin-RevId: 44ba4fde9b192f3792bf295557fa1018c83a2119
2024-07-26 08:04:53 +00:00
Jessica Lawshe
85ec182859 Merge pull request #19446 from overleaf/jel-light-touch-file-reorg
[web] File reorganization of light touch redesign

GitOrigin-RevId: 6ea13a5d0053bdfd71f9d29d417f73f06a492d49
2024-07-26 08:04:48 +00:00
Jessica Lawshe
72821743fc Merge pull request #19415 from overleaf/jel-highlighted-col
[web] Update highlighted column for plans page light touch redesign

GitOrigin-RevId: 98a0d6c34762bb7f4530da9cd6d954c2ae1aae56
2024-07-26 08:04:44 +00:00
Jimmy Domagala-Tang
918c3e7e33 Merge pull request #19301 from overleaf/jdt-collaborator-ai-usage
Prevent AI usage on projects where collaborators have a blocking policy

GitOrigin-RevId: 93bdd9c5accff51a14f0585249e13ed7f1fa4e53
2024-07-26 08:04:35 +00:00
David
d7357b4d62 Merge pull request #19400 from overleaf/dp-duplicate-file-folder-name
Improvements to handling of file/folder upload conflicts

GitOrigin-RevId: 526edf30dfbaec7ee1e03ffd156365f09be25e86
2024-07-25 08:05:08 +00:00
David
c07d2f3fa2 Merge pull request #19528 from overleaf/dp-equation-preview
Equation Preview

GitOrigin-RevId: 98e71e5d2c1a83d6c9fa685eeee1f4b93a5a3da1
2024-07-25 08:05:04 +00:00
M Fahru
394d07d03e Merge pull request #19509 from overleaf/mf-contact-support-faq
Implement contact support link below FAQ section

GitOrigin-RevId: 5c22c9807522b3ba88169b759520feb165f3f499
2024-07-25 08:04:51 +00:00
Alf Eaton
7e136131c0 Promisify Metadata feature (#19361)
GitOrigin-RevId: 962aa9dbbc41a49c2c3120af9a1254a4db85387b
2024-07-24 08:05:19 +00:00
Alexandre Bourdin
8e79d72cc2 Merge pull request #19465 from overleaf/ab-modules-middlewares
[web] Support injecting middlewares from modules

GitOrigin-RevId: efbf68d885f839b92f2e601553c7ce54b9d4b6d3
2024-07-24 08:05:09 +00:00
Mathias Jakobsen
34422b1428 Merge pull request #19418 from overleaf/mj-write-and-cite-custom-render
[web] Write & Cite autocomplete prototype

GitOrigin-RevId: f51edb9b1ab9cc2ac8f18277cb291ee87650c213
2024-07-24 08:05:04 +00:00
Rebeka Dekany
6cb956b1ff Merge pull request #19472 from overleaf/rd-stylelint-ci
[web] Add Stylelint formatting to the CI

GitOrigin-RevId: f31139f9f6f70aa96214b59db37ad1f79cd1e733
2024-07-23 08:04:09 +00:00
David
277ac91f0e Merge pull request #19390 from overleaf/dp-pdf-tools-teardown
Remove `pdf-controls` feature flag and old controls

GitOrigin-RevId: 807ee0aa6384df354809f4d59b10d00dadef898c
2024-07-22 08:04:22 +00:00
roo hutton
523e340a0d Merge pull request #19398 from overleaf/rh-rm-ieee-notification
[web] Remove IEEE Collabratec notification

GitOrigin-RevId: 14ec3e50ed4913b815620f5215df59b17fc03054
2024-07-18 08:04:41 +00:00
Jimmy Domagala-Tang
168f83277b Merge pull request #19328 from overleaf/jdt-global-metrics
Allow for site wide metrics and counters

GitOrigin-RevId: e788488bdd673aef4ba0e45a9e39832d6203c44c
2024-07-18 08:04:27 +00:00
andrew rumble
f54b257022 Remove special code for handling RequestFailedErrors
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 821826fa56b89176b615e026f11db0b7fcfcbd30
2024-07-17 08:05:05 +00:00
andrew rumble
0e89857a9f Remove unneeded/confusing assignment
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 2aa48249cf216bc8cca7e95153695095923c0b86
2024-07-17 08:05:01 +00:00
andrew rumble
15ea69995a Replace request with fetch-utils in ExpressLocals
GitOrigin-RevId: 85c112a2124aeca128753e40c70869517c7026f6
2024-07-17 08:04:57 +00:00
Jessica Lawshe
0ea17a1c5a Merge pull request #19414 from overleaf/jel-light-touch-col-headers
[web] Update column header styling for light touch redesign of plans table

GitOrigin-RevId: d6b24f1c355256a5dcb2c75255eec610e064fd03
2024-07-16 08:05:15 +00:00
Jessica Lawshe
300e46a28d Merge pull request #19379 from overleaf/jel-light-touch-separate-rows
[web] Separate column header sections into new rows

GitOrigin-RevId: cffe39933f877eaf07a9e772fd76b8e18dd95d3e
2024-07-16 08:05:10 +00:00
Jessica Lawshe
fada0b80eb Merge pull request #19395 from overleaf/jel-light-touch-restructure-mixins
[web] Restructure column header mixins for light touch design

GitOrigin-RevId: b8f6d9084b7a0190a0ba421d1e3ba819358c7fa2
2024-07-16 08:05:05 +00:00
Jessica Lawshe
3084ff921b Merge pull request #19376 from overleaf/jel-light-touch-remove-unused
[web] Remove unused code for light touch plans page redesign

GitOrigin-RevId: 9e160ed59eec5f8a700b88c0591fb0200c2dc403
2024-07-16 08:05:01 +00:00
Jessica Lawshe
ccac1047d6 Merge pull request #19332 from overleaf/jel-light-touch-plans-border
[web] Update border style for light touch redesign of plans page

GitOrigin-RevId: ba3df408ce626f4b2a3eb634de93d8879f3e9611
2024-07-16 08:04:56 +00:00
Jessica Lawshe
68e42efb20 Merge pull request #19331 from overleaf/jel-light-touch-rename-css
[web] Rename CSS variables for light touch redesign

GitOrigin-RevId: 8a56c56e2a743e935d70bd585d8c62a93faba0eb
2024-07-16 08:04:51 +00:00
Liangjun Song
f4a7b1f298 bypass linking sharing admin redirect for internal projects (#19314)
* disable linking sharing admin redirect

* address comments

* remove ignoreSiteAdmin

* load admin domains from settings

* add acceptance test

* more tests

* fix tests and restore admin domain

* use adminDomains as array

GitOrigin-RevId: 5acb62e1b6ada0aaeceab6db6a6635f82e30833f
2024-07-16 08:04:35 +00:00
Alf Eaton
1e1a8c0bb3 Add translated messages for more connection error states (#19392)
GitOrigin-RevId: 981de624f3964ebe3ff1f0c751fcef9158864d5e
2024-07-15 09:32:55 +00:00
ilkin-overleaf
b442a74f54 Merge pull request #19249 from overleaf/ii-invite-token-response
[web] Fix share modal resend status code

GitOrigin-RevId: 303f7b6c49d9522df6317789bb7c3c69d774715f
2024-07-15 09:05:02 +00:00
M Fahru
3304aaddf3 Merge pull request #18962 from overleaf/mf-interstitial-payment-new-plans-page-config
[web] Implement website-redesign-plans split test config on interstitial payment page

GitOrigin-RevId: 6ea51d5f89ac6b633b5ce6dfbb81c258d668ce13
2024-07-15 09:04:53 +00:00
Jimmy Domagala-Tang
ffad592f8d Merge pull request #19317 from overleaf/jdt-fake-foor-test
AI error assistant fake door test

GitOrigin-RevId: 9ba5480a50d9881fa0ce2f3632f94ffe57d7a152
2024-07-15 09:04:48 +00:00
Thomas
ab4a4df931 Merge pull request #19348 from overleaf/tm-link-sharing-changes-events-fixes
Link sharing changes events fixes for collaborator sharing-updates prompt and project open event

GitOrigin-RevId: 45449f0dd27e07de189a9c2620b0aa9a8849dc41
2024-07-15 09:04:44 +00:00
David
0c7a32b4f2 Merge pull request #19346 from overleaf/dp-review-panel-empty-state
Add empty state to review panel

GitOrigin-RevId: 47d7b676e9868942567fc02db234b0827ac86ba3
2024-07-15 09:04:27 +00:00
Mathias Jakobsen
1f0e346bbc Merge pull request #19373 from overleaf/mj-comment-regex-fix
[web] Fix regex in comment matching

GitOrigin-RevId: e341f13a9ccbe2fbc1ec6c6c1d8a7a11c4dd4e37
2024-07-15 09:04:07 +00:00
Alf Eaton
87d1c08e2f Merge pull request #19325 from overleaf/ae-metadata-packages
Include all package names in the project metadata

GitOrigin-RevId: dd30eb254806248484c9c6d9210f38c7c69a0ba1
2024-07-15 09:03:32 +00:00
Eric Mc Sween
f63de6779d Merge pull request #19329 from overleaf/em-migration-progress-logs
Log progress during history migration

GitOrigin-RevId: a3af8722b40af2b0ffe9603b6d6dcea02cee833d
2024-07-15 09:02:31 +00:00
Jimmy Domagala-Tang
e47a790af9 Merge pull request #19292 from overleaf/jdt-mj-imported-at
copying a project should preserve a linked files created timestamp

GitOrigin-RevId: d82506db1fb3f54567e638346179413468419b82
2024-07-15 09:02:08 +00:00
Eric Mc Sween
0be042e331 Merge pull request #19318 from overleaf/mj-revert-check-ranges-support
[web] Check that project has ranges support when reverting

GitOrigin-RevId: 761e435e9d640c08f27dd4ad2cef95934c0cc48b
2024-07-15 09:02:03 +00:00
Miguel Serrano
b5e5d39c3a [web] Tighten check for spelling language (#19297)
* [web] Tighten check for spelling language

* spelling proxy only for `/check` requests

GitOrigin-RevId: c678e93cca9ad39682ec7ce6e49804ea74741acc
2024-07-15 09:01:45 +00:00
Eric Mc Sween
fbdf245517 Merge pull request #19273 from overleaf/em-history-migration-concurrency
Add concurrency option to history ranges support migration script

GitOrigin-RevId: 8707abc9b76116090332b6abb11030adb17ceb4e
2024-07-15 09:00:46 +00:00
Eric Mc Sween
1b84f005cc Merge pull request #19271 from overleaf/em-really-skip-projects-without-history
Refine check for existence of history in migration script

GitOrigin-RevId: 8ad5706525f5043694e516d585a7aef85a1e5566
2024-07-05 08:04:39 +00:00
Eric Mc Sween
01ce2721c0 Merge pull request #19255 from overleaf/em-increase-timeout-docstore-has-ranges
Handle docstore timeouts during history migration

GitOrigin-RevId: 9b00aa039fc9646c24e69bfca51dd8e784434fc6
2024-07-05 08:04:26 +00:00
Eric Mc Sween
194d778c28 Merge pull request #19242 from overleaf/em-api-error-handlers
Handle more errors in the global API error handler

GitOrigin-RevId: add31e2de067e8534f2eb3932623c2413c4ce6d8
2024-07-04 08:05:31 +00:00
Eric Mc Sween
898f6c81c8 Merge pull request #19250 from overleaf/em-skip-no-history
Skip projects without history when migrating

GitOrigin-RevId: d38539fbc1b6e406b833f849276c3829ad722d91
2024-07-04 08:05:26 +00:00
Jakob Ackermann
9406b2bd31 Merge pull request #19245 from overleaf/jpa-fix-invite
[web] use project invite token from request path

GitOrigin-RevId: d2670c3f10f8c9a15420fab7506f9ebdf4108c6c
2024-07-04 08:05:04 +00:00
ilkin-overleaf
f9245b8c08 Merge pull request #19071 from overleaf/ii-invite-token-remove-token-field
[web] Remove the token field from `projectInvites` collection

GitOrigin-RevId: fe8395e1d1a0ba2daad600b7e3be657f40151a8e
2024-07-04 08:05:00 +00:00
Jakob Ackermann
88457a6655 Merge pull request #19220 from overleaf/jpa-precompile-pug
[web] precompile pug templates in CI

GitOrigin-RevId: 6ec2b85a357fa3d5c35d8e7eb1a2e81ac5f3b447
2024-07-04 08:04:51 +00:00
Eric Mc Sween
a95c0bbfc3 Merge pull request #19151 from overleaf/em-history-ranges-quick-migration
Add quick history ranges support migration

GitOrigin-RevId: 8446beb6bcd7384c32fc1b216e4b72d8f5d91500
2024-07-03 08:04:44 +00:00
Jimmy Domagala-Tang
f77894c427 Merge pull request #19238 from overleaf/jdt-use-ai-project-fix
feat: matching rename to checkPermissions within projectController
GitOrigin-RevId: ea05800c145858237fb0b236f9a19837c6c4a9a2
2024-07-03 08:04:36 +00:00
Jimmy Domagala-Tang
007cc42477 Merge pull request #19152 from overleaf/jdt-project-permissions
Allow checking permissions for all users on a project and rename checkPermissions -> AssertPermissions

GitOrigin-RevId: 511356cf2fe68367e284347e68e59f6116bd0f80
2024-07-03 08:04:19 +00:00
Jimmy Domagala-Tang
c0f39267a9 Merge pull request #19150 from overleaf/jdt-ai-promo
feat: add labs ai experiment promo
GitOrigin-RevId: 9bf039635b487339caa277b501a8cd99c7c7613f
2024-07-03 08:04:15 +00:00
Thomas
566466185b Merge pull request #19206 from overleaf/tm-link-sharing-changes-events
Implement link sharing warning events by reusing the StartFreeTrial paywall button component from the original modal

GitOrigin-RevId: 9c16407ad8a7b5afc9b5b13be1491ef903ae74a3
2024-07-02 08:04:25 +00:00
Thomas
6a65644778 Merge pull request #19185 from overleaf/tm-validate-can-invite-editor-2
Update inviteToProject to check if editor slots are available

GitOrigin-RevId: bb67ae6329130573ba43e9524a3084bf5551ebde
2024-07-01 08:04:21 +00:00
Thomas
a047388b08 Add serverside checks for changing the user access level after link sharing changes (#19168)
* Add getEditInviteCount to count only edit collaborators

* Add getInvitedEditCollaboratorCount to count joined editors

* Add canAddXEditCollaborators to determine if owner can add more editors

* Update setCollaboratorInfo to check if editor slots are available

GitOrigin-RevId: a88707f102dfbde39322f5a7bbc79d47b6e810d5
2024-07-01 08:04:16 +00:00
Thomas
2ce71b0b4d Async/awaitify LimitationsManager for link sharing changes (#19110)
* Move functions to top level

* Async/awaitify LimitationsManager methods

* Promisify LimitationsManagerTests

GitOrigin-RevId: ece7d2ea5160aa95924840044e2f225e1f2848e7
2024-07-01 08:04:12 +00:00
Jimmy Domagala-Tang
d7863bec37 Merge pull request #19108 from overleaf/jdt-ai-rm-alpha-reqs
Remove Alpha bypass for AI Error Correction

GitOrigin-RevId: d6b93bc2071dbeeb3d67d48197e61abf4d920944
2024-06-28 08:04:57 +00:00
Domagoj Kriskovic
c3c97d9fb9 [web] return file type in revertFile (#18995)
* [web] return file type in revertFile

* fix revertFile unit test

* fix formatting

GitOrigin-RevId: e4ac0500ff6c72c7f7fa23a5f61b09ed31a28da0
2024-06-28 08:04:45 +00:00
Antoine Clausse
01188589f8 Add some JSDoc types to @overleaf/logger (#19153)
* Add some JSDoc types to `@overleaf/logger`

* Update `logger.error` calls

* Fixup `logger.err` JSDoc

* Update `logger.err` calls

* Fix `args` type

* Remove "Error message" description

* Replace `arguments` by actual arguments of the method

* Fix: "ESLint: Unnecessary '.apply()'.(no-useless-call)"

* Add JSDoc params to `debug` `info` `warn`

* Remove extra `args` param in JSDoc so developers aren't invited to use it

Not sure if this is the best thing to do because it creates a warning in the IDE: "Parameter args is not described in JSDoc"

* Add comment about serialization of `err` `req` `res`

* Allow strings as first param in `debug` `info` `warn`

* Fix syntax for optional parameters in JSDoc

* Add 2 signatures, to avoid "string, string" params

* Fix `@signature` names copy-pastes

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

* Revert the double `@param attributes`. It doesn't work

---------

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 086dee8bbf30d577c5e1f844a9df5e518c46aca7
2024-06-28 08:04:25 +00:00
Antoine Clausse
1dbbe5af9d [web] Promisify TemplatesController (#18849)
* Promisify TemplatesController

* Update TemplatesControllerTests

* Fix `templateVersionId` in `getV1Template` (!!)

GitOrigin-RevId: bdaa59ed3cff81d919a8b3d19d5be555a2790f55
2024-06-28 08:04:17 +00:00
Jessica Lawshe
07d1f26731 Merge pull request #19084 from overleaf/jel-light-touch-rename-css
[web] Rename CSS variables for light touch redesign

GitOrigin-RevId: c84eb75a45af8270895795ceffef944696037881
2024-06-27 08:04:52 +00:00
Jessica Lawshe
fbc9a557c7 Merge pull request #18959 from overleaf/jel-faq-tabs
[web] New tab and accordion more reusable

GitOrigin-RevId: ed8340bc4b6312c4270edf1edf53c74a067aaccf
2024-06-27 08:04:44 +00:00
Jimmy Domagala-Tang
c04fea0fd3 Merge pull request #19162 from overleaf/jpa-flaky-admin-test
[web] refresh system message cache after creating/deleting message

GitOrigin-RevId: f7155e94a8bf08b527e7ae69d9d6a41e54c01282
2024-06-27 08:04:39 +00:00
Thomas
94be372b24 Add new interstitial 'Join project' consent page for existing link sharing editors when opening a project (#19066)
* Add helpers for checking and removing user readwrite token membership

* Add sharing-updates page and handlers

* Redirect read write token members to sharing-updates on project load

GitOrigin-RevId: d552a2cd74a9843c6103923b03f137131a48877a
2024-06-26 11:12:42 +00:00
Thomas
260fdf1307 Add read write token join interstitial variation for link sharing changes (#19060)
* Add read write join interstitial variation for link sharing changes

GitOrigin-RevId: 41661f43f4ab0f18f6ada5bec0b6af2407f65f07
2024-06-26 11:12:37 +00:00
Thomas
70bf7b2aab Merge pull request #19109 from overleaf/tm-project-joined-add-project-id
Add projectId to project-joined event

GitOrigin-RevId: 222e0acc8764592344e384d1a6a5a2327d4161f5
2024-06-26 11:12:33 +00:00
Jimmy Domagala-Tang
b0344ec550 Merge pull request #19132 from overleaf/jdt-ai-policy-migration
feat: add migration for adding new policy to all existing groupPolicies
GitOrigin-RevId: ea3188b6059c2e96afd0058a191d18b26d68adbd
2024-06-26 08:04:48 +00:00
Tim Down
956aad7e43 Merge pull request #18764 from overleaf/td-bs5-dashboard-feature-flag
Create new feature flag for BS5 project dashboard page

GitOrigin-RevId: a523bd7df94c411805ac2f5234135bc7a56d25bb
2024-06-25 11:12:35 +00:00
Tim Down
8897e439ae Merge pull request #18928 from overleaf/td-bs5-nav-admin-missing-href
Bootstrap 5: add missing href to nav admin link

GitOrigin-RevId: 5339fa2ef465a6319d87cba6201e682dea1a98a6
2024-06-25 11:12:31 +00:00
Mathias Jakobsen
e48e4293a6 Merge pull request #19090 from overleaf/mj-web-metadata
[web] Ignore commented content when parsing metadata

GitOrigin-RevId: 78f9b0d6549e60fca4ba8929beb677341d885655
2024-06-25 11:12:02 +00:00