Просмотр исходного кода

fix #432: Couldn't create a new page with Group ACL

Yuki Takei 7 лет назад
Родитель
Сommit
ffb08ff748
1 измененных файлов с 13 добавлено и 23 удалено
  1. 13 23
      lib/models/page.js

+ 13 - 23
lib/models/page.js

@@ -917,10 +917,10 @@ module.exports = function(crowi) {
       grant = GRANT_PUBLIC;
     }
 
-    return new Promise(function(resolve, reject) {
-      Page.findOne({path: path}, function(err, pageData) {
+    return Page.findOne({path: path})
+      .then(pageData => {
         if (pageData) {
-          return reject(new Error('Cannot create new page to existed path'));
+          throw new Error('Cannot create new page to existed path');
         }
 
         var newPage = new Page();
@@ -935,28 +935,18 @@ module.exports = function(crowi) {
         newPage.grantedUsers = [];
         newPage.grantedUsers.push(user);
 
-        newPage.save(function(err, newPage) {
-          if (err) {
-            return reject(err);
-          }
-
-          if (newPage.grant == Page.GRANT_USER_GROUP && grantUserGroupId != null) {
-            Page.updateGrantUserGroup(newPage, grant, grantUserGroupId, user)
-              .catch((err) => {
-                return reject(err);
-              });
-          }
-          var newRevision = Revision.prepareRevision(newPage, body, user, {format: format});
-          Page.pushRevision(newPage, newRevision, user).then(function(data) {
-            resolve(data);
-            pageEvent.emit('create', data, user);
-          }).catch(function(err) {
-            debug('Push Revision Error on create page', err);
-            return reject(err);
+        return newPage.save();
+      })
+      .then((newPage) => {
+        const newRevision = Revision.prepareRevision(newPage, body, user, {format: format});
+        return Page.pushRevision(newPage, newRevision, user)
+          .then(() => {
+            return Page.updateGrantUserGroup(newPage, grant, grantUserGroupId, user);
           });
-        });
+      })
+      .then((data) => {
+        pageEvent.emit('create', data, user);
       });
-    });
   };
 
   pageSchema.statics.updatePage = function(pageData, body, user, options) {