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/methods/addRoomOwner.coffee

30 lines
1.1 KiB

Meteor.methods
addRoomOwner: (rid, userId) ->
check rid, String
check userId, String
unless Meteor.userId()
throw new Meteor.Error 'error-invalid-user', 'Invalid user', { method: 'addRoomOwner' }
unless RocketChat.authz.hasPermission Meteor.userId(), 'set-owner', rid
throw new Meteor.Error 'error-not-allowed', 'Not allowed', { method: 'addRoomOwner' }
subscription = RocketChat.models.Subscriptions.findOneByRoomIdAndUserId rid, userId
unless subscription?
throw new Meteor.Error 'error-invalid-room', 'Invalid room', { method: 'addRoomOwner' }
RocketChat.models.Subscriptions.addRoleById(subscription._id, 'owner')
user = RocketChat.models.Users.findOneById userId
fromUser = RocketChat.models.Users.findOneById Meteor.userId()
RocketChat.models.Messages.createSubscriptionRoleAddedWithRoomIdAndUser rid, user,
u:
_id: fromUser._id
username: fromUser.username
role: 'owner'
if RocketChat.settings.get('UI_DisplayRoles')
RocketChat.Notifications.notifyAll('roles-change', { type: 'added', _id: 'owner', u: { _id: user._id, username: user.username }, scope: rid });
return true