diff --git a/packages/rocketchat-livechat/server/api/v1/room.js b/packages/rocketchat-livechat/server/api/v1/room.js index 3a6161222c61..8ea1d8ce6e35 100644 --- a/packages/rocketchat-livechat/server/api/v1/room.js +++ b/packages/rocketchat-livechat/server/api/v1/room.js @@ -2,7 +2,8 @@ import { Meteor } from 'meteor/meteor'; import { Match, check } from 'meteor/check'; import { Random } from 'meteor/random'; import { TAPi18n } from 'meteor/tap:i18n'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { settings as rcSettings } from 'meteor/rocketchat:settings'; +import { Messages, Rooms } from 'meteor/rocketchat:models'; import { API } from 'meteor/rocketchat:api'; import { findGuest, findRoom, getRoom, settings } from '../lib/livechat'; import { Livechat } from '../../lib/Livechat'; @@ -55,7 +56,7 @@ API.v1.addRoute('livechat/room.close', { throw new Meteor.Error('room-closed'); } - const language = RocketChat.settings.get('Language') || 'en'; + const language = rcSettings.get('Language') || 'en'; const comment = TAPi18n.__('Closed_by_visitor', { lng: language }); if (!Livechat.closeRoom({ visitor, room, comment })) { @@ -91,7 +92,7 @@ API.v1.addRoute('livechat/room.transfer', { } // update visited page history to not expire - RocketChat.models.Messages.keepHistoryForToken(token); + Messages.keepHistoryForToken(token); if (!Livechat.transfer(room, guest, { roomId: rid, departmentId: department })) { return API.v1.failure(); @@ -145,7 +146,7 @@ API.v1.addRoute('livechat/room.survey', { throw new Meteor.Error('invalid-data'); } - if (!RocketChat.models.Rooms.updateSurveyFeedbackById(room._id, updateData)) { + if (!Rooms.updateSurveyFeedbackById(room._id, updateData)) { return API.v1.failure(); } diff --git a/packages/rocketchat-livechat/server/methods/addAgent.js b/packages/rocketchat-livechat/server/methods/addAgent.js index b9a7cc01baa5..38a945df1933 100644 --- a/packages/rocketchat-livechat/server/methods/addAgent.js +++ b/packages/rocketchat-livechat/server/methods/addAgent.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:addAgent'(username) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:addAgent' }); } diff --git a/packages/rocketchat-livechat/server/methods/addManager.js b/packages/rocketchat-livechat/server/methods/addManager.js index a83ce7bfa3db..3fba85835c4b 100644 --- a/packages/rocketchat-livechat/server/methods/addManager.js +++ b/packages/rocketchat-livechat/server/methods/addManager.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:addManager'(username) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:addManager' }); } diff --git a/packages/rocketchat-livechat/server/methods/changeLivechatStatus.js b/packages/rocketchat-livechat/server/methods/changeLivechatStatus.js index 06e08f59b8bb..0f92b1cd7d23 100644 --- a/packages/rocketchat-livechat/server/methods/changeLivechatStatus.js +++ b/packages/rocketchat-livechat/server/methods/changeLivechatStatus.js @@ -1,5 +1,5 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Users } from 'meteor/rocketchat:models'; Meteor.methods({ 'livechat:changeLivechatStatus'() { @@ -11,6 +11,6 @@ Meteor.methods({ const newStatus = user.statusLivechat === 'available' ? 'not-available' : 'available'; - return RocketChat.models.Users.setLivechatStatus(user._id, newStatus); + return Users.setLivechatStatus(user._id, newStatus); }, }); diff --git a/packages/rocketchat-livechat/server/methods/closeByVisitor.js b/packages/rocketchat-livechat/server/methods/closeByVisitor.js index 5acee57cb3f1..a5a014f54560 100644 --- a/packages/rocketchat-livechat/server/methods/closeByVisitor.js +++ b/packages/rocketchat-livechat/server/methods/closeByVisitor.js @@ -1,6 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { TAPi18n } from 'meteor/tap:i18n'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { settings } from 'meteor/rocketchat:settings'; +import { Rooms } from 'meteor/rocketchat:models'; import LivechatVisitors from '../models/LivechatVisitors'; import { Livechat } from '../lib/Livechat'; @@ -8,11 +9,11 @@ Meteor.methods({ 'livechat:closeByVisitor'({ roomId, token }) { const visitor = LivechatVisitors.getVisitorByToken(token); - const language = (visitor && visitor.language) || RocketChat.settings.get('Language') || 'en'; + const language = (visitor && visitor.language) || settings.get('Language') || 'en'; return Livechat.closeRoom({ visitor, - room: RocketChat.models.Rooms.findOneOpenByRoomIdAndVisitorToken(roomId, token), + room: Rooms.findOneOpenByRoomIdAndVisitorToken(roomId, token), comment: TAPi18n.__('Closed_by_visitor', { lng: language }), }); }, diff --git a/packages/rocketchat-livechat/server/methods/closeRoom.js b/packages/rocketchat-livechat/server/methods/closeRoom.js index 5f9b558dc781..8f586e9585e5 100644 --- a/packages/rocketchat-livechat/server/methods/closeRoom.js +++ b/packages/rocketchat-livechat/server/methods/closeRoom.js @@ -1,24 +1,25 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; +import { Subscriptions, Rooms } from 'meteor/rocketchat:models'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:closeRoom'(roomId, comment) { const userId = Meteor.userId(); - if (!userId || !RocketChat.authz.hasPermission(userId, 'close-livechat-room')) { + if (!userId || !hasPermission(userId, 'close-livechat-room')) { throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'livechat:closeRoom' }); } const user = Meteor.user(); - const subscription = RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(roomId, user._id, { _id: 1 }); - if (!subscription && !RocketChat.authz.hasPermission(userId, 'close-others-livechat-room')) { + const subscription = Subscriptions.findOneByRoomIdAndUserId(roomId, user._id, { _id: 1 }); + if (!subscription && !hasPermission(userId, 'close-others-livechat-room')) { throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'livechat:closeRoom' }); } return Livechat.closeRoom({ user, - room: RocketChat.models.Rooms.findOneById(roomId), + room: Rooms.findOneById(roomId), comment, }); }, diff --git a/packages/rocketchat-livechat/server/methods/facebook.js b/packages/rocketchat-livechat/server/methods/facebook.js index b3fd3fe48dab..b804b72ea301 100644 --- a/packages/rocketchat-livechat/server/methods/facebook.js +++ b/packages/rocketchat-livechat/server/methods/facebook.js @@ -1,10 +1,11 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; +import { settings } from 'meteor/rocketchat:settings'; import OmniChannel from '../lib/OmniChannel'; Meteor.methods({ 'livechat:facebook'(options) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:addAgent' }); } @@ -12,8 +13,8 @@ Meteor.methods({ switch (options.action) { case 'initialState': { return { - enabled: RocketChat.settings.get('Livechat_Facebook_Enabled'), - hasToken: !!RocketChat.settings.get('Livechat_Facebook_API_Key'), + enabled: settings.get('Livechat_Facebook_Enabled'), + hasToken: !!settings.get('Livechat_Facebook_API_Key'), }; } @@ -24,13 +25,13 @@ Meteor.methods({ return result; } - return RocketChat.settings.updateById('Livechat_Facebook_Enabled', true); + return settings.updateById('Livechat_Facebook_Enabled', true); } case 'disable': { OmniChannel.disable(); - return RocketChat.settings.updateById('Livechat_Facebook_Enabled', false); + return settings.updateById('Livechat_Facebook_Enabled', false); } case 'list-pages': { diff --git a/packages/rocketchat-livechat/server/methods/getAgentData.js b/packages/rocketchat-livechat/server/methods/getAgentData.js index f9bef1adf071..c9ec165842a4 100644 --- a/packages/rocketchat-livechat/server/methods/getAgentData.js +++ b/packages/rocketchat-livechat/server/methods/getAgentData.js @@ -1,6 +1,6 @@ import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Users, Rooms } from 'meteor/rocketchat:models'; import LivechatVisitors from '../models/LivechatVisitors'; Meteor.methods({ @@ -8,7 +8,7 @@ Meteor.methods({ check(roomId, String); check(token, String); - const room = RocketChat.models.Rooms.findOneById(roomId); + const room = Rooms.findOneById(roomId); const visitor = LivechatVisitors.getVisitorByToken(token); if (!room || room.t !== 'l' || !room.v || room.v.token !== visitor.token) { @@ -19,6 +19,6 @@ Meteor.methods({ return; } - return RocketChat.models.Users.getAgentInfo(room.servedBy._id); + return Users.getAgentInfo(room.servedBy._id); }, }); diff --git a/packages/rocketchat-livechat/server/methods/getAgentOverviewData.js b/packages/rocketchat-livechat/server/methods/getAgentOverviewData.js index 3a9ef3142534..25858f8a3f04 100644 --- a/packages/rocketchat-livechat/server/methods/getAgentOverviewData.js +++ b/packages/rocketchat-livechat/server/methods/getAgentOverviewData.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:getAgentOverviewData'(options) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:getAgentOverviewData', }); diff --git a/packages/rocketchat-livechat/server/methods/getAnalyticsChartData.js b/packages/rocketchat-livechat/server/methods/getAnalyticsChartData.js index 13d426971450..63cb49c580ef 100644 --- a/packages/rocketchat-livechat/server/methods/getAnalyticsChartData.js +++ b/packages/rocketchat-livechat/server/methods/getAnalyticsChartData.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:getAnalyticsChartData'(options) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:getAnalyticsChartData', }); diff --git a/packages/rocketchat-livechat/server/methods/getAnalyticsOverviewData.js b/packages/rocketchat-livechat/server/methods/getAnalyticsOverviewData.js index aacae224b0ce..0ec4df5f471a 100644 --- a/packages/rocketchat-livechat/server/methods/getAnalyticsOverviewData.js +++ b/packages/rocketchat-livechat/server/methods/getAnalyticsOverviewData.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:getAnalyticsOverviewData'(options) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:getAnalyticsOverviewData', }); diff --git a/packages/rocketchat-livechat/server/methods/getInitialData.js b/packages/rocketchat-livechat/server/methods/getInitialData.js index 5112786cf2fa..583205adcc5f 100644 --- a/packages/rocketchat-livechat/server/methods/getInitialData.js +++ b/packages/rocketchat-livechat/server/methods/getInitialData.js @@ -1,5 +1,5 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Rooms, Users } from 'meteor/rocketchat:models'; import _ from 'underscore'; import { LivechatDepartment, LivechatTrigger } from '../models'; import LivechatVisitors from '../models/LivechatVisitors'; @@ -43,7 +43,7 @@ Meteor.methods({ departmentId: 1, }, }; - const room = (departmentId) ? RocketChat.models.Rooms.findOpenByVisitorTokenAndDepartmentId(visitorToken, departmentId, options).fetch() : RocketChat.models.Rooms.findOpenByVisitorToken(visitorToken, options).fetch(); + const room = (departmentId) ? Rooms.findOpenByVisitorTokenAndDepartmentId(visitorToken, departmentId, options).fetch() : Rooms.findOpenByVisitorToken(visitorToken, options).fetch(); if (room && room.length > 0) { info.room = room[0]; } @@ -83,7 +83,7 @@ Meteor.methods({ info.emailFieldRegistrationForm = initSettings.Livechat_email_field_registration_form; info.registrationFormMessage = initSettings.Livechat_registration_form_message; - info.agentData = room && room[0] && room[0].servedBy && RocketChat.models.Users.getAgentInfo(room[0].servedBy._id); + info.agentData = room && room[0] && room[0].servedBy && Users.getAgentInfo(room[0].servedBy._id); LivechatTrigger.findEnabled().forEach((trigger) => { info.triggers.push(_.pick(trigger, '_id', 'actions', 'conditions', 'runOnce')); @@ -94,7 +94,7 @@ Meteor.methods({ }); info.allowSwitchingDepartments = initSettings.Livechat_allow_switching_departments; - info.online = RocketChat.models.Users.findOnlineAgents().count() > 0; + info.online = Users.findOnlineAgents().count() > 0; return info; }, }); diff --git a/packages/rocketchat-livechat/server/methods/getNextAgent.js b/packages/rocketchat-livechat/server/methods/getNextAgent.js index 5e6792c41ac4..c303f183bcb7 100644 --- a/packages/rocketchat-livechat/server/methods/getNextAgent.js +++ b/packages/rocketchat-livechat/server/methods/getNextAgent.js @@ -1,13 +1,13 @@ import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Rooms, Users } from 'meteor/rocketchat:models'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:getNextAgent'({ token, department }) { check(token, String); - const room = RocketChat.models.Rooms.findOpenByVisitorToken(token).fetch(); + const room = Rooms.findOpenByVisitorToken(token).fetch(); if (room && room.length > 0) { return; @@ -25,6 +25,6 @@ Meteor.methods({ return; } - return RocketChat.models.Users.getAgentInfo(agent.agentId); + return Users.getAgentInfo(agent.agentId); }, }); diff --git a/packages/rocketchat-livechat/server/methods/loadHistory.js b/packages/rocketchat-livechat/server/methods/loadHistory.js index 1e2f63be96d3..fc5d124e978d 100644 --- a/packages/rocketchat-livechat/server/methods/loadHistory.js +++ b/packages/rocketchat-livechat/server/methods/loadHistory.js @@ -1,5 +1,5 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { loadMessageHistory } from 'meteor/rocketchat:lib'; import LivechatVisitors from '../models/LivechatVisitors'; Meteor.methods({ @@ -10,6 +10,6 @@ Meteor.methods({ return; } - return RocketChat.loadMessageHistory({ userId: visitor._id, rid, end, limit, ls }); + return loadMessageHistory({ userId: visitor._id, rid, end, limit, ls }); }, }); diff --git a/packages/rocketchat-livechat/server/methods/registerGuest.js b/packages/rocketchat-livechat/server/methods/registerGuest.js index a743fbad85f3..75e78858d021 100644 --- a/packages/rocketchat-livechat/server/methods/registerGuest.js +++ b/packages/rocketchat-livechat/server/methods/registerGuest.js @@ -1,5 +1,5 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Messages, Rooms } from 'meteor/rocketchat:models'; import LivechatVisitors from '../models/LivechatVisitors'; import { Livechat } from '../lib/Livechat'; @@ -13,7 +13,7 @@ Meteor.methods({ }); // update visited page history to not expire - RocketChat.models.Messages.keepHistoryForToken(token); + Messages.keepHistoryForToken(token); const visitor = LivechatVisitors.getVisitorByToken(token, { fields: { @@ -26,7 +26,7 @@ Meteor.methods({ }); // If it's updating an existing visitor, it must also update the roomInfo - const cursor = RocketChat.models.Rooms.findOpenByVisitorToken(token); + const cursor = Rooms.findOpenByVisitorToken(token); cursor.forEach((room) => { Livechat.saveRoomInfo(room, visitor); }); diff --git a/packages/rocketchat-livechat/server/methods/removeAgent.js b/packages/rocketchat-livechat/server/methods/removeAgent.js index a1b28a619c66..0896a68328c2 100644 --- a/packages/rocketchat-livechat/server/methods/removeAgent.js +++ b/packages/rocketchat-livechat/server/methods/removeAgent.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:removeAgent'(username) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:removeAgent' }); } diff --git a/packages/rocketchat-livechat/server/methods/removeCustomField.js b/packages/rocketchat-livechat/server/methods/removeCustomField.js index 35251d971b80..536962bf73c5 100644 --- a/packages/rocketchat-livechat/server/methods/removeCustomField.js +++ b/packages/rocketchat-livechat/server/methods/removeCustomField.js @@ -1,11 +1,11 @@ import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { LivechatCustomField } from '../models'; Meteor.methods({ 'livechat:removeCustomField'(_id) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:removeCustomField' }); } diff --git a/packages/rocketchat-livechat/server/methods/removeDepartment.js b/packages/rocketchat-livechat/server/methods/removeDepartment.js index 40ad21fa2939..95f70fc7fa86 100644 --- a/packages/rocketchat-livechat/server/methods/removeDepartment.js +++ b/packages/rocketchat-livechat/server/methods/removeDepartment.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:removeDepartment'(_id) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:removeDepartment' }); } diff --git a/packages/rocketchat-livechat/server/methods/removeManager.js b/packages/rocketchat-livechat/server/methods/removeManager.js index 549f50b85554..9ec5a9caa456 100644 --- a/packages/rocketchat-livechat/server/methods/removeManager.js +++ b/packages/rocketchat-livechat/server/methods/removeManager.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:removeManager'(username) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:removeManager' }); } diff --git a/packages/rocketchat-livechat/server/methods/removeRoom.js b/packages/rocketchat-livechat/server/methods/removeRoom.js index e18f2092e550..529eb5bf0610 100644 --- a/packages/rocketchat-livechat/server/methods/removeRoom.js +++ b/packages/rocketchat-livechat/server/methods/removeRoom.js @@ -1,13 +1,14 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; +import { Rooms, Messages, Subscriptions } from 'meteor/rocketchat:models'; Meteor.methods({ 'livechat:removeRoom'(rid) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'remove-closed-livechat-rooms')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'remove-closed-livechat-rooms')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:removeRoom' }); } - const room = RocketChat.models.Rooms.findOneById(rid); + const room = Rooms.findOneById(rid); if (!room) { throw new Meteor.Error('error-invalid-room', 'Invalid room', { @@ -27,8 +28,8 @@ Meteor.methods({ }); } - RocketChat.models.Messages.removeByRoomId(rid); - RocketChat.models.Subscriptions.removeByRoomId(rid); - return RocketChat.models.Rooms.removeById(rid); + Messages.removeByRoomId(rid); + Subscriptions.removeByRoomId(rid); + return Rooms.removeById(rid); }, }); diff --git a/packages/rocketchat-livechat/server/methods/removeTrigger.js b/packages/rocketchat-livechat/server/methods/removeTrigger.js index 4001e866734a..9af9bf73342d 100644 --- a/packages/rocketchat-livechat/server/methods/removeTrigger.js +++ b/packages/rocketchat-livechat/server/methods/removeTrigger.js @@ -1,11 +1,11 @@ import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { LivechatTrigger } from '../models'; Meteor.methods({ 'livechat:removeTrigger'(triggerId) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:removeTrigger' }); } diff --git a/packages/rocketchat-livechat/server/methods/returnAsInquiry.js b/packages/rocketchat-livechat/server/methods/returnAsInquiry.js index 59c127fea288..9c08c381408b 100644 --- a/packages/rocketchat-livechat/server/methods/returnAsInquiry.js +++ b/packages/rocketchat-livechat/server/methods/returnAsInquiry.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:returnAsInquiry'(rid, departmentId) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-l-room')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-l-room')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveDepartment' }); } diff --git a/packages/rocketchat-livechat/server/methods/saveAppearance.js b/packages/rocketchat-livechat/server/methods/saveAppearance.js index 368863bf2bf8..c1110701ef8a 100644 --- a/packages/rocketchat-livechat/server/methods/saveAppearance.js +++ b/packages/rocketchat-livechat/server/methods/saveAppearance.js @@ -1,9 +1,9 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; Meteor.methods({ 'livechat:saveAppearance'(settings) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveAppearance' }); } @@ -32,7 +32,7 @@ Meteor.methods({ } settings.forEach((setting) => { - RocketChat.settings.updateById(setting._id, setting.value); + settings.updateById(setting._id, setting.value); }); return; diff --git a/packages/rocketchat-livechat/server/methods/saveCustomField.js b/packages/rocketchat-livechat/server/methods/saveCustomField.js index 59802826703d..167d86c297f8 100644 --- a/packages/rocketchat-livechat/server/methods/saveCustomField.js +++ b/packages/rocketchat-livechat/server/methods/saveCustomField.js @@ -1,11 +1,11 @@ import { Meteor } from 'meteor/meteor'; import { Match, check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { LivechatCustomField } from '../models'; Meteor.methods({ 'livechat:saveCustomField'(_id, customFieldData) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveCustomField' }); } diff --git a/packages/rocketchat-livechat/server/methods/saveDepartment.js b/packages/rocketchat-livechat/server/methods/saveDepartment.js index ce400a0e456b..59a1ea310a79 100644 --- a/packages/rocketchat-livechat/server/methods/saveDepartment.js +++ b/packages/rocketchat-livechat/server/methods/saveDepartment.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:saveDepartment'(_id, departmentData, departmentAgents) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveDepartment' }); } diff --git a/packages/rocketchat-livechat/server/methods/saveInfo.js b/packages/rocketchat-livechat/server/methods/saveInfo.js index 6bfb27794414..4d198aac713a 100644 --- a/packages/rocketchat-livechat/server/methods/saveInfo.js +++ b/packages/rocketchat-livechat/server/methods/saveInfo.js @@ -1,11 +1,13 @@ import { Meteor } from 'meteor/meteor'; import { Match, check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; +import { Rooms } from 'meteor/rocketchat:models'; +import { callbacks } from 'meteor/rocketchat:callbacks'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:saveInfo'(guestData, roomData) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-l-room')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-l-room')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveInfo' }); } @@ -22,20 +24,20 @@ Meteor.methods({ tags: Match.Optional(String), })); - const room = RocketChat.models.Rooms.findOneById(roomData._id, { fields: { t: 1, servedBy: 1 } }); + const room = Rooms.findOneById(roomData._id, { fields: { t: 1, servedBy: 1 } }); if (room == null || room.t !== 'l') { throw new Meteor.Error('error-invalid-room', 'Invalid room', { method: 'livechat:saveInfo' }); } - if ((!room.servedBy || room.servedBy._id !== Meteor.userId()) && !RocketChat.authz.hasPermission(Meteor.userId(), 'save-others-livechat-room-info')) { + if ((!room.servedBy || room.servedBy._id !== Meteor.userId()) && !hasPermission(Meteor.userId(), 'save-others-livechat-room-info')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveInfo' }); } const ret = Livechat.saveGuest(guestData) && Livechat.saveRoomInfo(roomData, guestData); Meteor.defer(() => { - RocketChat.callbacks.run('livechat.saveInfo', RocketChat.models.Rooms.findOneById(roomData._id)); + callbacks.run('livechat.saveInfo', Rooms.findOneById(roomData._id)); }); return ret; diff --git a/packages/rocketchat-livechat/server/methods/saveIntegration.js b/packages/rocketchat-livechat/server/methods/saveIntegration.js index ff601d48c33e..6306a9133392 100644 --- a/packages/rocketchat-livechat/server/methods/saveIntegration.js +++ b/packages/rocketchat-livechat/server/methods/saveIntegration.js @@ -1,35 +1,36 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; +import { settings } from 'meteor/rocketchat:settings'; import s from 'underscore.string'; Meteor.methods({ 'livechat:saveIntegration'(values) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveIntegration' }); } if (typeof values.Livechat_webhookUrl !== 'undefined') { - RocketChat.settings.updateById('Livechat_webhookUrl', s.trim(values.Livechat_webhookUrl)); + settings.updateById('Livechat_webhookUrl', s.trim(values.Livechat_webhookUrl)); } if (typeof values.Livechat_secret_token !== 'undefined') { - RocketChat.settings.updateById('Livechat_secret_token', s.trim(values.Livechat_secret_token)); + settings.updateById('Livechat_secret_token', s.trim(values.Livechat_secret_token)); } if (typeof values.Livechat_webhook_on_close !== 'undefined') { - RocketChat.settings.updateById('Livechat_webhook_on_close', !!values.Livechat_webhook_on_close); + settings.updateById('Livechat_webhook_on_close', !!values.Livechat_webhook_on_close); } if (typeof values.Livechat_webhook_on_offline_msg !== 'undefined') { - RocketChat.settings.updateById('Livechat_webhook_on_offline_msg', !!values.Livechat_webhook_on_offline_msg); + settings.updateById('Livechat_webhook_on_offline_msg', !!values.Livechat_webhook_on_offline_msg); } if (typeof values.Livechat_webhook_on_visitor_message !== 'undefined') { - RocketChat.settings.updateById('Livechat_webhook_on_visitor_message', !!values.Livechat_webhook_on_visitor_message); + settings.updateById('Livechat_webhook_on_visitor_message', !!values.Livechat_webhook_on_visitor_message); } if (typeof values.Livechat_webhook_on_agent_message !== 'undefined') { - RocketChat.settings.updateById('Livechat_webhook_on_agent_message', !!values.Livechat_webhook_on_agent_message); + settings.updateById('Livechat_webhook_on_agent_message', !!values.Livechat_webhook_on_agent_message); } return; diff --git a/packages/rocketchat-livechat/server/methods/saveSurveyFeedback.js b/packages/rocketchat-livechat/server/methods/saveSurveyFeedback.js index 4636a42a7a4b..224cfa736e02 100644 --- a/packages/rocketchat-livechat/server/methods/saveSurveyFeedback.js +++ b/packages/rocketchat-livechat/server/methods/saveSurveyFeedback.js @@ -1,6 +1,6 @@ import { Meteor } from 'meteor/meteor'; import { Match, check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Rooms } from 'meteor/rocketchat:models'; import LivechatVisitors from '../models/LivechatVisitors'; import _ from 'underscore'; @@ -11,7 +11,7 @@ Meteor.methods({ check(formData, [Match.ObjectIncluding({ name: String, value: String })]); const visitor = LivechatVisitors.getVisitorByToken(visitorToken); - const room = RocketChat.models.Rooms.findOneById(visitorRoom); + const room = Rooms.findOneById(visitorRoom); if (visitor !== undefined && room !== undefined && room.v !== undefined && room.v.token === visitor.token) { const updateData = {}; @@ -23,7 +23,7 @@ Meteor.methods({ } } if (!_.isEmpty(updateData)) { - return RocketChat.models.Rooms.updateSurveyFeedbackById(room._id, updateData); + return Rooms.updateSurveyFeedbackById(room._id, updateData); } } }, diff --git a/packages/rocketchat-livechat/server/methods/saveTrigger.js b/packages/rocketchat-livechat/server/methods/saveTrigger.js index 2bf033d637bd..3d2801e1ccd8 100644 --- a/packages/rocketchat-livechat/server/methods/saveTrigger.js +++ b/packages/rocketchat-livechat/server/methods/saveTrigger.js @@ -1,11 +1,11 @@ import { Meteor } from 'meteor/meteor'; import { Match, check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; import { LivechatTrigger } from '../models'; Meteor.methods({ 'livechat:saveTrigger'(trigger) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveTrigger' }); } diff --git a/packages/rocketchat-livechat/server/methods/searchAgent.js b/packages/rocketchat-livechat/server/methods/searchAgent.js index 2c7db1618d34..bc7d99e81de8 100644 --- a/packages/rocketchat-livechat/server/methods/searchAgent.js +++ b/packages/rocketchat-livechat/server/methods/searchAgent.js @@ -1,10 +1,11 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; +import { Users } from 'meteor/rocketchat:models'; import _ from 'underscore'; Meteor.methods({ 'livechat:searchAgent'(username) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-livechat-manager')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-livechat-manager')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:searchAgent' }); } @@ -12,7 +13,7 @@ Meteor.methods({ throw new Meteor.Error('error-invalid-arguments', 'Invalid arguments', { method: 'livechat:searchAgent' }); } - const user = RocketChat.models.Users.findOneByUsername(username, { fields: { _id: 1, username: 1 } }); + const user = Users.findOneByUsername(username, { fields: { _id: 1, username: 1 } }); if (!user) { throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'livechat:searchAgent' }); diff --git a/packages/rocketchat-livechat/server/methods/sendFileLivechatMessage.js b/packages/rocketchat-livechat/server/methods/sendFileLivechatMessage.js index 187b4e5c0da3..f81677e87887 100644 --- a/packages/rocketchat-livechat/server/methods/sendFileLivechatMessage.js +++ b/packages/rocketchat-livechat/server/methods/sendFileLivechatMessage.js @@ -1,7 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { Match, check } from 'meteor/check'; import { Random } from 'meteor/random'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Rooms } from 'meteor/rocketchat:models'; import { FileUpload } from 'meteor/rocketchat:file-upload'; import LivechatVisitors from '../models/LivechatVisitors'; @@ -13,7 +13,7 @@ Meteor.methods({ return false; } - const room = RocketChat.models.Rooms.findOneOpenByRoomIdAndVisitorToken(roomId, visitorToken); + const room = Rooms.findOneOpenByRoomIdAndVisitorToken(roomId, visitorToken); if (!room) { return false; diff --git a/packages/rocketchat-livechat/server/methods/setCustomField.js b/packages/rocketchat-livechat/server/methods/setCustomField.js index 98bc2443fb81..59abe289fd6c 100644 --- a/packages/rocketchat-livechat/server/methods/setCustomField.js +++ b/packages/rocketchat-livechat/server/methods/setCustomField.js @@ -1,5 +1,5 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Rooms } from 'meteor/rocketchat:models'; import LivechatVisitors from '../models/LivechatVisitors'; import { LivechatCustomField } from '../models'; @@ -8,7 +8,7 @@ Meteor.methods({ const customField = LivechatCustomField.findOneById(key); if (customField) { if (customField.scope === 'room') { - return RocketChat.models.Rooms.updateLivechatDataByToken(token, key, value, overwrite); + return Rooms.updateLivechatDataByToken(token, key, value, overwrite); } else { // Save in user return LivechatVisitors.updateLivechatDataByToken(token, key, value, overwrite); diff --git a/packages/rocketchat-livechat/server/methods/setDepartmentForVisitor.js b/packages/rocketchat-livechat/server/methods/setDepartmentForVisitor.js index 551a2f29bc56..cd9b9e8a965b 100644 --- a/packages/rocketchat-livechat/server/methods/setDepartmentForVisitor.js +++ b/packages/rocketchat-livechat/server/methods/setDepartmentForVisitor.js @@ -1,6 +1,6 @@ import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Rooms, Messages } from 'meteor/rocketchat:models'; import LivechatVisitors from '../models/LivechatVisitors'; import { Livechat } from '../lib/Livechat'; @@ -10,7 +10,7 @@ Meteor.methods({ check(visitorToken, String); check(departmentId, String); - const room = RocketChat.models.Rooms.findOneById(roomId); + const room = Rooms.findOneById(roomId); const visitor = LivechatVisitors.getVisitorByToken(visitorToken); if (!room || room.t !== 'l' || !room.v || room.v.token !== visitor.token) { @@ -18,7 +18,7 @@ Meteor.methods({ } // update visited page history to not expire - RocketChat.models.Messages.keepHistoryForToken(visitorToken); + Messages.keepHistoryForToken(visitorToken); const transferData = { roomId, diff --git a/packages/rocketchat-livechat/server/methods/startVideoCall.js b/packages/rocketchat-livechat/server/methods/startVideoCall.js index b9a384f3f83f..874646e9890e 100644 --- a/packages/rocketchat-livechat/server/methods/startVideoCall.js +++ b/packages/rocketchat-livechat/server/methods/startVideoCall.js @@ -1,6 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { Random } from 'meteor/random'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { Messages } from 'meteor/rocketchat:models'; +import { settings } from 'meteor/rocketchat:settings'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ @@ -21,7 +22,7 @@ Meteor.methods({ const { room } = Livechat.getRoom(guest, message, { jitsiTimeout: new Date(Date.now() + 3600 * 1000) }); message.rid = room._id; - RocketChat.models.Messages.createWithTypeRoomIdMessageAndUser('livechat_video_call', room._id, '', guest, { + Messages.createWithTypeRoomIdMessageAndUser('livechat_video_call', room._id, '', guest, { actionLinks: [ { icon: 'icon-videocam', i18nLabel: 'Accept', method_id: 'createLivechatCall', params: '' }, { icon: 'icon-cancel', i18nLabel: 'Decline', method_id: 'denyLivechatCall', params: '' }, @@ -30,8 +31,8 @@ Meteor.methods({ return { roomId: room._id, - domain: RocketChat.settings.get('Jitsi_Domain'), - jitsiRoom: RocketChat.settings.get('Jitsi_URL_Room_Prefix') + RocketChat.settings.get('uniqueID') + roomId, + domain: settings.get('Jitsi_Domain'), + jitsiRoom: settings.get('Jitsi_URL_Room_Prefix') + settings.get('uniqueID') + roomId, }; }, }); diff --git a/packages/rocketchat-livechat/server/methods/takeInquiry.js b/packages/rocketchat-livechat/server/methods/takeInquiry.js index 49cbf2f888fe..8184795c8c1e 100644 --- a/packages/rocketchat-livechat/server/methods/takeInquiry.js +++ b/packages/rocketchat-livechat/server/methods/takeInquiry.js @@ -1,11 +1,12 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission } from 'meteor/rocketchat:authorization'; +import { Users, Rooms, Subscriptions, Messages } from 'meteor/rocketchat:models'; import { LivechatInquiry } from '../../lib/LivechatInquiry'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:takeInquiry'(inquiryId) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-l-room')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-l-room')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:takeInquiry' }); } @@ -15,7 +16,7 @@ Meteor.methods({ throw new Meteor.Error('error-not-allowed', 'Inquiry already taken', { method: 'livechat:takeInquiry' }); } - const user = RocketChat.models.Users.findOneById(Meteor.userId()); + const user = Users.findOneById(Meteor.userId()); const agent = { agentId: user._id, @@ -42,13 +43,13 @@ Meteor.methods({ emailNotifications: 'all', }; - RocketChat.models.Subscriptions.insert(subscriptionData); - RocketChat.models.Rooms.incUsersCountById(inquiry.rid); + Subscriptions.insert(subscriptionData); + Rooms.incUsersCountById(inquiry.rid); // update room - const room = RocketChat.models.Rooms.findOneById(inquiry.rid); + const room = Rooms.findOneById(inquiry.rid); - RocketChat.models.Rooms.changeAgentByRoomId(inquiry.rid, agent); + Rooms.changeAgentByRoomId(inquiry.rid, agent); room.servedBy = { _id: agent.agentId, @@ -62,11 +63,11 @@ Meteor.methods({ // remove sending message from guest widget // dont check if setting is true, because if settingwas switched off inbetween guest entered pool, // and inquiry being taken, message would not be switched off. - RocketChat.models.Messages.createCommandWithRoomIdAndUser('connected', room._id, user); + Messages.createCommandWithRoomIdAndUser('connected', room._id, user); Livechat.stream.emit(room._id, { type: 'agentData', - data: RocketChat.models.Users.getAgentInfo(agent.agentId), + data: Users.getAgentInfo(agent.agentId), }); // return inquiry (for redirecting agent to the room route) diff --git a/packages/rocketchat-livechat/server/methods/transfer.js b/packages/rocketchat-livechat/server/methods/transfer.js index bd101c136800..faec98ab1964 100644 --- a/packages/rocketchat-livechat/server/methods/transfer.js +++ b/packages/rocketchat-livechat/server/methods/transfer.js @@ -1,12 +1,13 @@ import { Meteor } from 'meteor/meteor'; import { Match, check } from 'meteor/check'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { hasPermission, hasRole } from 'meteor/rocketchat:authorization'; +import { Rooms, Subscriptions } from 'meteor/rocketchat:models'; import LivechatVisitors from '../models/LivechatVisitors'; import { Livechat } from '../lib/Livechat'; Meteor.methods({ 'livechat:transfer'(transferData) { - if (!Meteor.userId() || !RocketChat.authz.hasPermission(Meteor.userId(), 'view-l-room')) { + if (!Meteor.userId() || !hasPermission(Meteor.userId(), 'view-l-room')) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:transfer' }); } @@ -16,13 +17,13 @@ Meteor.methods({ departmentId: Match.Optional(String), }); - const room = RocketChat.models.Rooms.findOneById(transferData.roomId); + const room = Rooms.findOneById(transferData.roomId); if (!room) { throw new Meteor.Error('error-invalid-room', 'Invalid room', { method: 'livechat:transfer' }); } - const subscription = RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(room._id, Meteor.userId(), { fields: { _id: 1 } }); - if (!subscription && !RocketChat.authz.hasRole(Meteor.userId(), 'livechat-manager')) { + const subscription = Subscriptions.findOneByRoomIdAndUserId(room._id, Meteor.userId(), { fields: { _id: 1 } }); + if (!subscription && !hasRole(Meteor.userId(), 'livechat-manager')) { throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'livechat:transfer' }); } diff --git a/packages/rocketchat-livechat/server/methods/webhookTest.js b/packages/rocketchat-livechat/server/methods/webhookTest.js index eb8221d51fd3..9da8eb07d730 100644 --- a/packages/rocketchat-livechat/server/methods/webhookTest.js +++ b/packages/rocketchat-livechat/server/methods/webhookTest.js @@ -1,5 +1,5 @@ import { Meteor } from 'meteor/meteor'; -import { RocketChat } from 'meteor/rocketchat:lib'; +import { settings } from 'meteor/rocketchat:settings'; import { HTTP } from 'meteor/http'; const postCatchError = Meteor.wrapAsync(function(url, options, resolve) { @@ -65,12 +65,12 @@ Meteor.methods({ const options = { headers: { - 'X-RocketChat-Livechat-Token': RocketChat.settings.get('Livechat_secret_token'), + 'X-RocketChat-Livechat-Token': settings.get('Livechat_secret_token'), }, data: sampleData, }; - const response = postCatchError(RocketChat.settings.get('Livechat_webhookUrl'), options); + const response = postCatchError(settings.get('Livechat_webhookUrl'), options); console.log('response ->', response);