Commit 44a764a1 by GD-A-150752

change-user-status

parent 7f6f70bc
...@@ -9,6 +9,7 @@ export const PERMISSIONS = { ...@@ -9,6 +9,7 @@ export const PERMISSIONS = {
CAN_ACCESS_SETTINGS: 'CAN_ACCESS_SETTINGS', CAN_ACCESS_SETTINGS: 'CAN_ACCESS_SETTINGS',
CAN_ACCESS_EMAIL_TEMPLATES: 'CAN_ACCESS_EMAIL_TEMPLATES', CAN_ACCESS_EMAIL_TEMPLATES: 'CAN_ACCESS_EMAIL_TEMPLATES',
CAN_UPDATE_ALL_USERS: 'CAN_UPDATE_ALL_USERS', CAN_UPDATE_ALL_USERS: 'CAN_UPDATE_ALL_USERS',
CAN_ACCESS_USERS_PAGE: 'CAN_ACCESS_USERS_PAGE',
}; };
export const CONFIG = { export const CONFIG = {
......
...@@ -3,9 +3,17 @@ import { rolesCollection } from '../collections/role.collection'; ...@@ -3,9 +3,17 @@ import { rolesCollection } from '../collections/role.collection';
import { ERR, E_CODE, PERMISSIONS } from '../config'; import { ERR, E_CODE, PERMISSIONS } from '../config';
import { UtilsService } from '../services/utils.service'; import { UtilsService } from '../services/utils.service';
import { EmailService } from '../services/email.service'; import { EmailService } from '../services/email.service';
import { QueryModel } from '../models/query.model';
Meteor.methods({ Meteor.methods({
usersGetCount(query: QueryModel): any {
return {
recordsFiltered: Meteor.users.find(query.query).count(),
recordsTotal: Meteor.users.find().count(),
};
},
registerUser(user: any): string { registerUser(user: any): string {
const defaultRole = rolesCollection.findOne({ title: user.role }); const defaultRole = rolesCollection.findOne({ title: user.role });
...@@ -96,4 +104,21 @@ Meteor.methods({ ...@@ -96,4 +104,21 @@ Meteor.methods({
return Accounts.findUserByEmail(email); return Accounts.findUserByEmail(email);
}, },
switchUser(user: Meteor.User, block = false): any {
if (UtilsService.hasPermission(PERMISSIONS.CAN_UPDATE_USER)) {
if (block) {
const disableRole = rolesCollection.findOne({ title: 'Blocked' });
user.profile.originalRole = user.profile.role;
user.profile.role = disableRole._id;
} else {
user.profile.role = user.profile.originalRole;
delete user.profile.originalRole;
}
return Meteor.users.update(user._id, user);
}
throw new Meteor.Error(E_CODE.FORBIDDEN, ERR.FORBIDDEN);
},
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment