* Script for removing user enrollment to a subcription
* Add "release-managed-user" audit log event for an user id
GitOrigin-RevId: adf2dd97ac82977bcfa07d9a24d1f3c190d095a2
* 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
* Promisify clear_sessions_set_must_reconfirm.mjs
* Add test on PasswordResetTests.mjs
* Add `must-reset-password-unset` audit log
* Add `must-reset-password-set` audit log
* Add test ClearSessionsSetMustReconfirmTests.mjs
* Fixup bad copy-paste in test: `must-reset-password-set` -> `must-reset-password-unset`
* Check `must_reconfirm` before calling `removeReconfirmFlag`
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Fix unit test
* Use `promiseMapWithLimit`
* Add `{ script: true }` to AuditLog. Also use `undefined` instead of `null` for consistency
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 522026c82196d263c196503d899b8c57b05b31dd