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

Merge pull request #129 from chuganzy/list_private_page

View all pages for the creator
Sotaro KARASAWA 9 лет назад
Родитель
Сommit
c240697bdb
2 измененных файлов с 8 добавлено и 7 удалено
  1. 6 5
      lib/models/page.js
  2. 2 2
      lib/routes/page.js

+ 6 - 5
lib/models/page.js

@@ -535,18 +535,19 @@ module.exports = function(crowi) {
     });
     });
   };
   };
 
 
-  /**
-   * とりあえず、公開ページであり、redirectTo が無いものだけを出すためだけのAPI
-   */
-  pageSchema.statics.findListByCreator = function(user, option) {
+  pageSchema.statics.findListByCreator = function(user, option, currentUser) {
     var Page = this;
     var Page = this;
     var User = crowi.model('User');
     var User = crowi.model('User');
     var limit = option.limit || 50;
     var limit = option.limit || 50;
     var offset = option.offset || 0;
     var offset = option.offset || 0;
+    var conditions = { creator: user._id, redirectTo: null };
+    if (!user.equals(currentUser._id)) {
+      conditions.grant = GRANT_PUBLIC;
+    }
 
 
     return new Promise(function(resolve, reject) {
     return new Promise(function(resolve, reject) {
       Page
       Page
-      .find({ creator: user._id, grant: GRANT_PUBLIC, redirectTo: null })
+      .find(conditions)
       .sort({createdAt: -1})
       .sort({createdAt: -1})
       .skip(offset)
       .skip(offset)
       .limit(limit)
       .limit(limit)

+ 2 - 2
lib/routes/page.js

@@ -252,7 +252,7 @@ module.exports = function(crowi, app) {
         }).then(function(bookmarkList) {
         }).then(function(bookmarkList) {
           renderVars.bookmarkList = bookmarkList;
           renderVars.bookmarkList = bookmarkList;
 
 
-          return Page.findListByCreator(userData, {limit: 10});
+          return Page.findListByCreator(userData, {limit: 10}, req.user);
         }).then(function(createdList) {
         }).then(function(createdList) {
           renderVars.createdList = createdList;
           renderVars.createdList = createdList;
           return Promise.resolve();
           return Promise.resolve();
@@ -477,7 +477,7 @@ module.exports = function(crowi, app) {
       }
       }
       renderVars.pageUser = user;
       renderVars.pageUser = user;
 
 
-      return Page.findListByCreator(user, queryOptions);
+      return Page.findListByCreator(user, queryOptions, req.user);
     }).then(function(pages) {
     }).then(function(pages) {
 
 
       if (pages.length > limit) {
       if (pages.length > limit) {