|
@@ -259,21 +259,38 @@ Users.attachSchema(
|
|
|
|
|
|
Users.before.update(function(userId, fieldNames) {
|
|
|
const user = Users.findOne({ _id: userId });
|
|
|
- if (user && user.isAdmin || Meteor.user() && Meteor.user().isAdmin) { return true; }
|
|
|
- if (!user) { return false; }
|
|
|
- if (_.contains(fieldNames, 'services')) { return false; }
|
|
|
- if (_.contains(fieldNames, 'heartBeat')) { return false; }
|
|
|
- if (_.contains(fieldNames, 'isAdmin')) { return false; }
|
|
|
- if (_.contains(fieldNames, 'loginDisabled')) { return false; }
|
|
|
- if (_.contains(fieldNames, 'authenticationMethod')) { return false; }
|
|
|
+ if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ if (!user) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (_.contains(fieldNames, 'services')) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (_.contains(fieldNames, 'heartBeat')) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (_.contains(fieldNames, 'isAdmin')) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (_.contains(fieldNames, 'loginDisabled')) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (_.contains(fieldNames, 'authenticationMethod')) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
Users.allow({
|
|
|
update(userId, doc) {
|
|
|
- const user = Users.findOne({ _id: userId });
|
|
|
- if (user && user.isAdmin || Meteor.user() && Meteor.user().isAdmin) return true;
|
|
|
- if (!user) { return false; }
|
|
|
- return doc._id === userId;
|
|
|
+ const user = Users.findOne({ _id: userId });
|
|
|
+ if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin))
|
|
|
+ return true;
|
|
|
+ if (!user) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return doc._id === userId;
|
|
|
},
|
|
|
remove(userId, doc) {
|
|
|
const adminsNumber = Users.find({ isAdmin: true }).count();
|