Просмотр исходного кода

[web] add migration for back-filling db.users.labsProgram=false (#34632)

* [web] add migration for back-filling db.users.labsProgram=false

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

* [web] include user.labsProgram=false in session

---------

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: 0b3322007f6a36d2999d646869dc84f2c6ad4d2d
Jakob Ackermann 1 месяц назад
Родитель
Сommit
f2ebe46506

+ 1 - 1
services/web/app/src/Features/Authentication/AuthenticationController.mjs

@@ -109,7 +109,7 @@ const AuthenticationController = {
       analyticsId: user.analyticsId || user._id,
       alphaProgram: user.alphaProgram || undefined, // only store if set
       betaProgram: user.betaProgram || undefined, // only store if set
-      labsProgram: user.labsProgram || undefined, // only store if set
+      labsProgram: user.labsProgram, // always store, we could revert about 1 week after deploying this change.
     }
     if (user.isAdmin) {
       lightUser.isAdmin = true

+ 20 - 0
tools/migrations/20260615090000_back_fill_labsProgram.mjs

@@ -0,0 +1,20 @@
+import { batchedUpdate } from '@overleaf/mongo-utils/batchedUpdate.js'
+
+const tags = ['server-ce', 'server-pro', 'saas', 'nonblocking']
+
+const migrate = async client => {
+  const { db } = client
+  await batchedUpdate(
+    db.users,
+    { labsProgram: { $ne: true } },
+    { $set: { labsProgram: false } }
+  )
+}
+
+const rollback = async () => {}
+
+export default {
+  tags,
+  migrate,
+  rollback,
+}