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/ee/app/authorization/server/validateUserRoles.js

29 lines
812 B

import { Meteor } from 'meteor/meteor';
import { isEnterprise, getMaxGuestUsers } from '../../license/server';
import { Users } from '../../../../app/models/server';
export const validateUserRoles = function(userId, userData) {
if (!isEnterprise()) {
return;
}
if (!userData.roles.includes('guest')) {
return;
}
if (userData.roles.length >= 2) {
throw new Meteor.Error('error-guests-cant-have-other-roles', "Guest users can't receive any other role", {
method: 'insertOrUpdateUser',
field: 'Assign_role',
});
}
const guestCount = Users.getActiveLocalGuestCount(userData._id);
if (guestCount >= getMaxGuestUsers()) {
throw new Meteor.Error('error-max-guests-number-reached', 'Maximum number of guests reached.', {
method: 'insertOrUpdateUser',
field: 'Assign_role',
});
}
};