itizawa 6 лет назад
Родитель
Сommit
ea29c50698

+ 8 - 5
src/server/models/user.js

@@ -199,13 +199,16 @@ module.exports = function(crowi) {
     });
   };
 
-  userSchema.methods.canDeleteCompletely = function() {
-    const isDeniedCompletelyDelete = crowi.configManager.getConfig('crowi', 'security:isEnabledDeleteCompletely');
-    if ((!this.admin) && isDeniedCompletelyDelete) {
-      return false;
+  userSchema.methods.canDeleteCompletely = function(creatorId) {
+    const PageCompleteDeletionAuthority = crowi.configManager.getConfig('crowi', 'security:PageCompleteDeletionAuthority');
+    if (PageCompleteDeletionAuthority === 'anyone' || this.admin) {
+      return true;
+    }
+    if (PageCompleteDeletionAuthority === 'adminAndAuthor') {
+      return (this.id === creatorId || false);
     }
 
-    return true;
+    return false;
   };
 
   userSchema.methods.updateApiToken = function(callback) {

+ 2 - 2
src/server/views/modal/delete.html

@@ -30,10 +30,10 @@
           </div>
           {% if not page.isDeleted() %}
           <div class="checkbox checkbox-danger">
-          <input name="completely" id="cbDeleteCompletely" {% if !user.canDeleteCompletely() %} disabled="disabled" {% endif %} value="1"  type="checkbox">
+          <input name="completely" id="cbDeleteCompletely" {% if !user.canDeleteCompletely(page.creator.id) %} disabled="disabled" {% endif %} value="1"  type="checkbox">
             <label for="cbDeleteCompletely" class="text-danger">{{ t('modal_delete.label.Delete completely') }}</label>
             <!-- GC-1755 Change Sentence -->
-            {% if !user.canDeleteCompletely() %}
+            {% if !user.canDeleteCompletely(page.creator.id) %}
               <p class="bg-danger text-white p-2 mt-2"> <i class="icon-ban" ></i> 完全削除の権限がありません </p>
             {% else %}
             <p class="help-block"> {{ t('modal_delete.help.completely') }}</p>

+ 1 - 1
src/server/views/widget/page_alerts.html

@@ -27,7 +27,7 @@
           <button href="#" class="btn btn-default btn-rounded btn-sm" data-target="#putBackPage" data-toggle="modal"><i class="icon-action-undo" aria-hidden="true"></i> {{ t('Put Back') }}</button>
         </li>
         <li>
-            <button href="#" class="btn btn-danger btn-rounded btn-sm" {% if !user.canDeleteCompletely() %} disabled="disabled" {% endif %} data-target="#deletePage" data-toggle="modal"><i class="icon-fire" aria-hidden="true"></i> {{ t('Delete Completely') }}</button>
+            <button href="#" class="btn btn-danger btn-rounded btn-sm" {% if !user.canDeleteCompletely(page.creator.id) %} disabled="disabled" {% endif %} data-target="#deletePage" data-toggle="modal"><i class="icon-fire" aria-hidden="true"></i> {{ t('Delete Completely') }}</button>
         </li>
       </ul>{# /.pull-right #}
       {% endif %}