Yuki Takei 7 лет назад
Родитель
Сommit
b0e9c5aa9f
2 измененных файлов с 18 добавлено и 46 удалено
  1. 2 15
      src/server/models/page.js
  2. 16 31
      src/test/models/page.test.js

+ 2 - 15
src/server/models/page.js

@@ -245,20 +245,6 @@ module.exports = function(crowi) {
     return templateChecker(this.path);
   };
 
-  // TODO abolish
-  // https://weseek.myjetbrains.com/youtrack/issue/GC-1225
-  pageSchema.methods.isGrantedFor = function(userData) {
-    if (this.isPublic()) {
-      return true;
-    }
-
-    if (userData != null && this.grantedUsers.indexOf(userData._id) >= 0) {
-      return true;
-    }
-
-    return false;
-  };
-
   pageSchema.methods.isLatestRevision = function() {
     // populate されていなくて判断できない
     if (!this.latestRevision || !this.revision) {
@@ -563,7 +549,8 @@ module.exports = function(crowi) {
     const queryBuilder = new PageQueryBuilder(baseQuery);
     queryBuilder.addConditionToFilteringByViewer(user, userGroups);
 
-    return await queryBuilder.query.exec();
+    const count = await queryBuilder.query.exec();
+    return count > 0;
   };
 
   /**

+ 16 - 31
src/test/models/page.test.js

@@ -209,49 +209,34 @@ describe('Page', () => {
     });
   });
 
-  describe('.isGrantedFor', () => {
+  describe('.isAccessiblePageByViewer', () => {
     context('with a granted user', () => {
-      it('should return true', done => {
-        User.findOne({email: 'anonymous0@example.com'}, (err, user) => {
-          if (err) { done(err); }
-
-          Page.findOne({path: '/user/anonymous0/memo'}, (err, page) => {
-            if (err) { done(err); }
+      it('should return true', async() => {
+        const user = await User.findOne({email: 'anonymous0@example.com'});
+        const page = await Page.findOne({path: '/user/anonymous0/memo'});
 
-            expect(page.isGrantedFor(user)).to.be.equal(true);
-            done();
-          });
-        });
+        const bool = await Page.isAccessiblePageByViewer(page.id, user);
+        expect(bool).to.be.equal(true);
       });
     });
 
     context('with a public page', () => {
-      it('should return true', done => {
-        User.findOne({email: 'anonymous1@example.com'}, (err, user) => {
-          if (err) { done(err); }
-
-          Page.findOne({path: '/grant/public'}, (err, page) => {
-            if (err) { done(err); }
+      it('should return true', async() => {
+        const user = await User.findOne({email: 'anonymous1@example.com'});
+        const page = await Page.findOne({path: '/grant/public'});
 
-            expect(page.isGrantedFor(user)).to.be.equal(true);
-            done();
-          });
-        });
+        const bool = await Page.isAccessiblePageByViewer(page.id, user);
+        expect(bool).to.be.equal(true);
       });
     });
 
     context('with a restricted page and an user who has no grant', () => {
-      it('should return false', done => {
-        User.findOne({email: 'anonymous1@example.com'}, (err, user) => {
-          if (err) { done(err); }
-
-          Page.findOne({path: '/grant/restricted'}, (err, page) => {
-            if (err) { done(err); }
+      it('should return false', async() => {
+        const user = await User.findOne({email: 'anonymous1@example.com'});
+        const page = await Page.findOne({path: '/grant/restricted'});
 
-            expect(page.isGrantedFor(user)).to.be.equal(false);
-            done();
-          });
-        });
+        const bool = await Page.isAccessiblePageByViewer(page.id, user);
+        expect(bool).to.be.equal(false);
       });
     });
   });