Преглед изворни кода

fix canDeleteUserHomepageByConfig conditions

ryoji-s пре 2 година
родитељ
комит
cdd2c2bc19
2 измењених фајлова са 7 додато и 4 уклоњено
  1. 2 2
      apps/app/src/server/routes/page.js
  2. 5 2
      apps/app/src/server/service/page.ts

+ 2 - 2
apps/app/src/server/routes/page.js

@@ -766,7 +766,7 @@ module.exports = function(crowi, app) {
           return res.json(ApiResponse.error('You can not delete this page completely', 'user_not_admin'));
         }
 
-        if (pagePathUtils.isUsersHomepage(page.path) && !crowi.pageService.canDeleteUserHomepageByConfig()) {
+        if (pagePathUtils.isUsersHomepage(page.path) && crowi.pageService.canDeleteUserHomepageByConfig()) {
           if (!await crowi.pageService.isUsersHomepageOwnerAbsent(page.path)) {
             return res.json(ApiResponse.error('Could not delete user homepage'));
           }
@@ -789,7 +789,7 @@ module.exports = function(crowi, app) {
           return res.json(ApiResponse.error('You can not delete this page', 'user_not_admin'));
         }
 
-        if (pagePathUtils.isUsersHomepage(page.path) && !crowi.pageService.canDeleteUserHomepageByConfig()) {
+        if (pagePathUtils.isUsersHomepage(page.path) && crowi.pageService.canDeleteUserHomepageByConfig()) {
           if (!await crowi.pageService.isUsersHomepageOwnerAbsent(page.path)) {
             return res.json(ApiResponse.error('Could not delete user homepage'));
           }

+ 5 - 2
apps/app/src/server/service/page.ts

@@ -189,6 +189,9 @@ class PageService {
 
   canDeleteUserHomepageByConfig(): boolean {
     const isUsersHomepageDeletionEnabled = configManager.getConfig('crowi', 'security:user-homepage-deletion:isEnabled');
+    if (isUsersHomepageDeletionEnabled == null) {
+      return false;
+    }
     return isUsersHomepageDeletionEnabled;
   }
 
@@ -242,7 +245,7 @@ class PageService {
     const User = mongoose.model('User');
     const usernames = userHomepages
       .map(page => getUsernameByPath(page.path))
-      .filter(username => username !== null) as string[];
+      .filter(username => username !== null);
     const existingUsernames = await User.distinct<string>('username', { username: { $in: usernames } });
 
     const isUserHomepageDeletable = (page: PageDocument) => {
@@ -1443,7 +1446,7 @@ class PageService {
       throw new Error('Page is not deletable.');
     }
 
-    if (pagePathUtils.isUsersHomepage(page.path) && !this.crowi.pageService.canDeleteUserHomepageByConfig()) {
+    if (pagePathUtils.isUsersHomepage(page.path) && this.crowi.pageService.canDeleteUserHomepageByConfig()) {
       if (!await this.crowi.pageService.isUsersHomepageOwnerAbsent(page.path)) {
         throw new Error('User Homepage is not deletable.');
       }