The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rocket.Chat/server/startup/migrations/v232.ts

42 lines
1.5 KiB

import { addMigration } from '../../lib/migrations';
import { isEnterprise } from '../../../ee/app/license/server';
import { Users, Settings } from '../../../app/models/server/raw';
import { Banner } from '../../sdk';
import { BannerPlatform } from '../../../definition/IBanner';
import { IUser } from '../../../definition/IUser';
import { settings } from '../../../app/settings/server';
addMigration({
version: 232,
up() {
const query = {
_id: { $in: [/^Accounts_OAuth_Custom-?([^-_]+)$/] },
value: true,
};
const isCustomOAuthEnabled = !!Promise.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;
}
const admins = Promise.await(Users.find<IUser>({ roles: 'admin' }, {}).toArray());
[NEW] Seats Cap (#23017) * Base commit * [NEW] licenses.maxActiveUsers endpoint (#23011) * [IMPROVE] Banner Service (#22989) * WIP * Fix type import Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat> * [NEW] canAddNewUser function * [NEW] Seats usage bar (#23018) * usage bar component * Seats limit in admin users page * Remove dangling console.log * Add some details on StatisticsEndpoint type * Move to EE and use new endpoint * Rename some components and hooks * Refactor UsersPage Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat> * Fix edit and info page * [NEW] Seats Card (#23077) * Seats Card * Fix review, make ts * Fix review * Add type guard for CardIcon props Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat> * [NEW] Seats Cap: Request seats link (#23151) * create endpoint and consume it in the ui * Fix review * Remove unused param type Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat> * [NEW] Remove license downgrade if exceeding seats cap (#23220) * [IMPROVE] Ensure Seats-cap design and UI are the same (#23222) * Fix labels and buttons * Reload seats cap data on user changes * Use Fuselage on development version Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat> * [NEW] Prevent users from accidentally deactivating an enterprise license by adding more users than the license allows. (#23050) Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat> Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat> * [NEW] stats on seats request (#23225) Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat> * [NEW] Seats cap banners (#23211) * [NEW] Prevent users from accidentally deactivating an enterprise license by adding more users than the license allows. * Seats cap banners * Deprecate preserveDismiss * use request seats link * Fix banner not closing and request seats link Co-authored-by: Pierre Lehnen <pierre.lehnen@rocket.chat> * [FIX] Banner not parsing markdown (#23036) * Parse markdown * Use markdownText * Fix translations * Move startup * Always create seats limit banners * Remove uneffective conditional * [FIX] Seats Cap QA reports (#23272) * Fix create banner and link * Remove call from startup * QA * Improve readability * Avoid using an outdated absolute URL * Embedded counters into translation strings Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat> * Patch object-path so Snyk stop complaining Co-authored-by: pierre-lehnen-rc <55164754+pierre-lehnen-rc@users.noreply.github.com> Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com> Co-authored-by: Pierre Lehnen <pierre.lehnen@rocket.chat> Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat> Co-authored-by: gabriellsh <40830821+gabriellsh@users.noreply.github.com> Co-authored-by: Gabriel Thomé <38537062+g-thome@users.noreply.github.com>
4 years ago
const banners = admins.map((a) => Promise.await(Banner.getBannersForUser(a._id, BannerPlatform.Web))).flat();
const msg =
'Please notice that after the next release (4.0) advanced functionalities of LDAP, SAML, and Custom Oauth will be available only in Enterprise Edition and Gold plan. Check the official announcement for more info: https://go.rocket.chat/i/authentication-changes';
// @ts-ignore
const authBanner = banners.find((b) => b.view.blocks[0].text.text === msg);
if (!authBanner) {
return;
}
admins.map((a) => Banner.dismiss(a._id, authBanner._id));
},
});