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/v121.js

58 lines
1.7 KiB

import { Migrations } from '../../../app/migrations';
import { Users, Subscriptions } from '../../../app/models';
Migrations.add({
version: 121,
up() {
// set user preferences on subscriptions
Users.find({
$or: [
{ 'settings.preferences.desktopNotifications': { $exists: true } },
{ 'settings.preferences.mobileNotifications': { $exists: true } },
{ 'settings.preferences.emailNotificationMode': { $exists: true } },
],
}).forEach((user) => {
if (user.settings.preferences.desktopNotifications && user.settings.preferences.desktopNotifications !== 'default') {
Subscriptions.update({
'u._id': user._id,
desktopPrefOrigin: { $exists: false },
}, {
$set: {
desktopNotifications: user.settings.preferences.desktopNotifications,
desktopPrefOrigin: 'user',
},
}, {
multi: true,
});
}
if (user.settings.preferences.mobileNotifications && user.settings.preferences.mobileNotifications !== 'default') {
Subscriptions.update({
'u._id': user._id,
mobilePrefOrigin: { $exists: false },
}, {
$set: {
mobileNotifications: user.settings.preferences.mobileNotifications,
mobilePrefOrigin: 'user',
},
}, {
multi: true,
});
}
if (user.settings.preferences.emailNotificationMode && user.settings.preferences.emailNotificationMode !== 'default') {
Subscriptions.update({
'u._id': user._id,
emailPrefOrigin: { $exists: false },
}, {
$set: {
emailNotifications: user.settings.preferences.emailNotificationMode === 'disabled' || user.settings.preferences.emailNotificationMode === 'nothing' ? 'nothing' : 'mentions',
emailPrefOrigin: 'user',
},
}, {
multi: true,
});
}
});
},
});