Skip to content

Commit 48c43c6

Browse files
committed
Merge branch 'develop' of github.com:RocketChat/Rocket.Chat into admin-refactor
* 'develop' of github.com:RocketChat/Rocket.Chat: Allow to filter omnichannel analytics dashboards per departments. (#17463) [FIX] Uncessary updates on Settings, Roles and Permissions on startup (#17160) [NEW] Add the ability to send Livechat offline messages to a channel (#17442) [FIX] Federation attachment URL for audio and video files (#16430) [NEW] Add Livechat website URL to the offline message e-mail (#17429)
2 parents 9896f31 + aaf9083 commit 48c43c6

File tree

62 files changed

+1532
-762
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1532
-762
lines changed

app/api/server/api.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ export class APIClass extends Restivus {
374374
'error-unauthorized': 'unauthorized',
375375
}[e.error] || 'failure';
376376

377-
result = API.v1[apiMethod](typeof e === 'string' ? e : e.message, e.error, undefined, e);
377+
result = API.v1[apiMethod](typeof e === 'string' ? e : e.message, e.error, process.env.TEST_MODE ? e.stack : undefined, e);
378378
} finally {
379379
delete Accounts._accountData[connection.id];
380380
}

app/api/server/v1/chat.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Match, check } from 'meteor/check';
44
import { Messages } from '../../../models';
55
import { canAccessRoom, hasPermission } from '../../../authorization';
66
import { normalizeMessagesForUser } from '../../../utils/server/lib/normalizeMessagesForUser';
7-
import { processWebhookMessage } from '../../../lib';
7+
import { processWebhookMessage } from '../../../lib/server';
88
import { API } from '../api';
99
import Rooms from '../../../models/server/models/Rooms';
1010
import Users from '../../../models/server/models/Users';

app/api/server/v1/permissions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Meteor } from 'meteor/meteor';
22
import { Match, check } from 'meteor/check';
33

44
import { hasPermission } from '../../../authorization';
5-
import { Permissions, Roles } from '../../../models';
5+
import { Permissions, Roles } from '../../../models/server';
66
import { API } from '../api';
77

88
/**

app/api/server/v1/settings.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Match, check } from 'meteor/check';
33
import { ServiceConfiguration } from 'meteor/service-configuration';
44
import _ from 'underscore';
55

6-
import { Settings } from '../../../models';
6+
import { Settings } from '../../../models/server';
77
import { hasPermission } from '../../../authorization';
88
import { API } from '../api';
99

app/apps/server/orchestrator.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class AppServerOrchestrator {
2424

2525
initialize() {
2626
this._rocketchatLogger = new Logger('Rocket.Chat Apps');
27-
Permissions.createOrUpdate('manage-apps', ['admin']);
27+
Permissions.create('manage-apps', ['admin']);
2828

2929
this._marketplaceUrl = 'https://marketplace.rocket.chat';
3030

app/authorization/server/startup.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint no-multi-spaces: 0 */
22
import { Meteor } from 'meteor/meteor';
33

4-
import { Roles, Permissions, Settings } from '../../models';
4+
import { Roles, Permissions, Settings } from '../../models/server';
55
import { settings } from '../../settings/server';
66
import { getSettingPermissionId, CONSTANTS } from '../lib';
77
import { clearCache } from './functions/hasPermission';
@@ -114,9 +114,7 @@ Meteor.startup(function() {
114114
];
115115

116116
for (const permission of permissions) {
117-
if (!Permissions.findOneById(permission._id)) {
118-
Permissions.upsert(permission._id, { $set: permission });
119-
}
117+
Permissions.create(permission._id, permission.roles);
120118
}
121119

122120
const defaultRoles = [
@@ -134,7 +132,7 @@ Meteor.startup(function() {
134132
];
135133

136134
for (const role of defaultRoles) {
137-
Roles.upsert({ _id: role.name }, { $setOnInsert: { scope: role.scope, description: role.description || '', protected: true, mandatory2fa: false } });
135+
Roles.createOrUpdate(role.name, role.scope, role.description, true, false);
138136
}
139137

140138
const getPreviousPermissions = function(settingId) {
@@ -155,27 +153,34 @@ Meteor.startup(function() {
155153
const createSettingPermission = function(setting, previousSettingPermissions) {
156154
const permissionId = getSettingPermissionId(setting._id);
157155
const permission = {
158-
_id: permissionId,
159156
level: CONSTANTS.SETTINGS_LEVEL,
160157
// copy those setting-properties which are needed to properly publish the setting-based permissions
161158
settingId: setting._id,
162159
group: setting.group,
163160
section: setting.section,
164161
sorter: setting.sorter,
162+
roles: [],
165163
};
166164
// copy previously assigned roles if available
167165
if (previousSettingPermissions[permissionId] && previousSettingPermissions[permissionId].roles) {
168166
permission.roles = previousSettingPermissions[permissionId].roles;
169-
} else {
170-
permission.roles = [];
171167
}
172168
if (setting.group) {
173169
permission.groupPermissionId = getSettingPermissionId(setting.group);
174170
}
175171
if (setting.section) {
176172
permission.sectionPermissionId = getSettingPermissionId(setting.section);
177173
}
178-
Permissions.upsert(permission._id, { $set: permission });
174+
175+
const existent = Permissions.findOne({
176+
_id: permissionId,
177+
...permission,
178+
}, { fields: { _id: 1 } });
179+
180+
if (!existent) {
181+
Permissions.upsert({ _id: permissionId }, { $set: permission });
182+
}
183+
179184
delete previousSettingPermissions[permissionId];
180185
};
181186

app/channel-settings-mail-messages/server/lib/startup.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,5 @@ Meteor.startup(function() {
77
_id: 'mail-messages',
88
roles: ['admin'],
99
};
10-
return Permissions.upsert(permission._id, {
11-
$setOnInsert: permission,
12-
});
10+
return Permissions.create(permission._id, permission.roles);
1311
});

app/channel-settings/server/startup.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Meteor } from 'meteor/meteor';
33
import { Permissions } from '../../models';
44

55
Meteor.startup(function() {
6-
Permissions.upsert('post-readonly', { $setOnInsert: { roles: ['admin', 'owner', 'moderator'] } });
7-
Permissions.upsert('set-readonly', { $setOnInsert: { roles: ['admin', 'owner'] } });
8-
Permissions.upsert('set-react-when-readonly', { $setOnInsert: { roles: ['admin', 'owner'] } });
6+
Permissions.create('post-readonly', ['admin', 'owner', 'moderator']);
7+
Permissions.create('set-readonly', ['admin', 'owner']);
8+
Permissions.create('set-react-when-readonly', ['admin', 'owner']);
99
});

app/cloud/server/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { Permissions } from '../../models';
1111
import { settings } from '../../settings/server';
1212

1313
if (Permissions) {
14-
Permissions.createOrUpdate('manage-cloud', ['admin']);
14+
Permissions.create('manage-cloud', ['admin']);
1515
}
1616

1717
const licenseCronName = 'Cloud Workspace Sync';

app/custom-sounds/server/startup/permissions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ import { Permissions } from '../../../models';
44

55
Meteor.startup(() => {
66
if (Permissions) {
7-
Permissions.createOrUpdate('manage-sounds', ['admin']);
7+
Permissions.create('manage-sounds', ['admin']);
88
}
99
});

0 commit comments

Comments
 (0)