Merge pull request #6505 from nathanmarcos/add-users-to-private-group-endpoint

Create groups.addAll endpoint and add activeUsersOnly param.
pull/6494/head^2
Gabriel Engel 9 years ago committed by GitHub
commit fef3223dbb
  1. 2
      packages/rocketchat-api/server/v1/channels.js
  2. 14
      packages/rocketchat-api/server/v1/groups.js
  3. 10
      server/methods/addAllUserToRoom.js

@ -22,7 +22,7 @@ RocketChat.API.v1.addRoute('channels.addAll', { authRequired: true }, {
const findResult = findChannelById({ roomId: this.bodyParams.roomId });
Meteor.runAsUser(this.userId, () => {
Meteor.call('addAllUserToRoom', findResult._id);
Meteor.call('addAllUserToRoom', findResult._id, this.bodyParams.activeUsersOnly);
});
return RocketChat.API.v1.success({

@ -22,6 +22,20 @@ function findPrivateGroupByIdOrName({ roomId, roomName, userId, checkedArchived
return roomSub;
}
RocketChat.API.v1.addRoute('groups.addAll', { authRequired: true }, {
post() {
const findResult = findPrivateGroupByIdOrName({ roomId: this.bodyParams.roomId, userId: this.userId });
Meteor.runAsUser(this.userId, () => {
Meteor.call('addAllUserToRoom', findResult.rid, this.bodyParams.activeUsersOnly);
});
return RocketChat.API.v1.success({
group: RocketChat.models.Rooms.findOneById(findResult.rid, { fields: RocketChat.API.v1.defaultFieldsToExclude })
});
}
});
RocketChat.API.v1.addRoute('groups.addModerator', { authRequired: true }, {
post() {
const findResult = findPrivateGroupByIdOrName({ roomId: this.bodyParams.roomId, userId: this.userId });

@ -1,7 +1,8 @@
Meteor.methods({
addAllUserToRoom(rid) {
addAllUserToRoom(rid, activeUsersOnly = false) {
check (rid, String);
check (activeUsersOnly, Boolean);
if (RocketChat.authz.hasRole(this.userId, 'admin') === true) {
const userCount = RocketChat.models.Users.find().count();
@ -18,7 +19,12 @@ Meteor.methods({
});
}
const users = RocketChat.models.Users.find().fetch();
const userFilter = {};
if (activeUsersOnly === true) {
userFilter.active = true;
}
const users = RocketChat.models.Users.find(userFilter).fetch();
const now = new Date();
users.forEach(function(user) {
const subscription = RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(rid, user._id);

Loading…
Cancel
Save