itizawa 6 лет назад
Родитель
Сommit
b91c969d4c
3 измененных файлов с 12 добавлено и 6 удалено
  1. 2 4
      src/server/models/user.js
  2. 1 0
      src/server/routes/admin.js
  3. 9 2
      src/server/routes/apiv3/users.js

+ 2 - 4
src/server/models/user.js

@@ -293,12 +293,10 @@ module.exports = function(crowi) {
     });
   };
 
-  userSchema.methods.makeAdmin = function(callback) {
+  userSchema.methods.makeAdmin = async function() {
     debug('Admin', this);
     this.admin = 1;
-    this.save((err, userData) => {
-      return callback(err, userData);
-    });
+    return this.save();
   };
 
   userSchema.methods.asyncMakeAdmin = async function(callback) {

+ 1 - 0
src/server/routes/admin.js

@@ -459,6 +459,7 @@ module.exports = function(crowi, app) {
     });
   };
 
+  // TODO remove
   actions.user.makeAdmin = function(req, res) {
     const id = req.params.id;
     User.findById(id, (err, userData) => {

+ 9 - 2
src/server/routes/apiv3/users.js

@@ -123,8 +123,15 @@ module.exports = (crowi) => {
   router.put('/:id/giveAdmin', loginRequiredStrictly, adminRequired, csrf, async(req, res) => {
     const { id } = req.params;
 
-    const userData = await User.findById(id);
-    return res.apiv3({ userData });
+    try {
+      const userData = await User.findById(id);
+      await userData.makeAdmin();
+      return res.apiv3({ userData });
+    }
+    catch (err) {
+      logger.error('Error', err);
+      return res.apiv3Err(new ErrorV3(err));
+    }
   });
   /**
    * @swagger