diff --git a/apps/meteor/server/startup/migrations/index.ts b/apps/meteor/server/startup/migrations/index.ts index 5090f342d841a6116f916965e36b77a9c09a35e1..535f72d8aa293ce5c7aae9dd8c38a7150aa570d2 100644 --- a/apps/meteor/server/startup/migrations/index.ts +++ b/apps/meteor/server/startup/migrations/index.ts @@ -36,4 +36,5 @@ import './v274'; import './v275'; import './v276'; import './v277'; +import './v278'; import './xrun'; diff --git a/apps/meteor/server/startup/migrations/v278.ts b/apps/meteor/server/startup/migrations/v278.ts new file mode 100644 index 0000000000000000000000000000000000000000..7b9ea045dee111fdf8cfa3b4be3e4fa2291ed881 --- /dev/null +++ b/apps/meteor/server/startup/migrations/v278.ts @@ -0,0 +1,38 @@ +import { Banners, Settings } from '@rocket.chat/models'; + +import { addMigration } from '../../lib/migrations'; +import { isEnterprise } from '../../../ee/app/license/server'; +import { settings } from '../../../app/settings/server'; + +addMigration({ + version: 278, + async up() { + const query = { + _id: { $in: [/^Accounts_OAuth_Custom-?([^-_]+)$/] }, + value: true, + }; + + const isCustomOAuthEnabled = !!(await Settings.findOne(query)); + const LDAPEnabled = settings.get('LDAP_Enable'); + const SAMLEnabled = settings.get('SAML_Custom_Default'); + + const isEE = isEnterprise(); + + if (!isEE && (isCustomOAuthEnabled || LDAPEnabled || SAMLEnabled)) { + return; + } + + await Banners.updateOne( + { + 'view.blocks.0.text.text': /authentication\-changes/, + 'active': { $ne: false }, + }, + { + $set: { + active: false, + inactivedAt: new Date(), + }, + }, + ); + }, +});