Pārlūkot izejas kodu

[Fix: Some users cannot switch views or languages](https://github.com/wekan/wekan/issues/2630).

Thanks to xet7 and justinr1234.
Lauri Ojansivu 5 gadi atpakaļ
vecāks
revīzija
6e12e2fa59
1 mainītis faili ar 16 papildinājumiem un 3 dzēšanām
  1. 16 3
      models/users.js

+ 16 - 3
models/users.js

@@ -257,10 +257,23 @@ 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; }
+});
+
 Users.allow({
-  update(userId) {
-    const user = Users.findOne(userId);
-    return user && Meteor.user().isAdmin; // GitHub issue #2590
+  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;
   },
   remove(userId, doc) {
     const adminsNumber = Users.find({ isAdmin: true }).count();