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

Merge branch 'master' into feat/ldap-auth

Yuki Takei пре 8 година
родитељ
комит
9f83047899
4 измењених фајлова са 40 додато и 25 уклоњено
  1. 6 1
      CHANGES.md
  2. 2 2
      lib/models/user.js
  3. 31 21
      lib/views/admin/users.html
  4. 1 1
      package.json

+ 6 - 1
CHANGES.md

@@ -1,9 +1,14 @@
 CHANGES
 CHANGES
 ========
 ========
 
 
-## 2.2.1-RC
+## 2.2.2
+
+* 
+
+## 2.2.1
 
 
 * Feature: Duplicate page
 * Feature: Duplicate page
+* Improve: Ensure that admin users can remove users waiting for approval
 * Fix: Modal doesn't work with React v16
 * Fix: Modal doesn't work with React v16
 * Support: Upgrade React to 16
 * Support: Upgrade React to 16
 * Support: Upgrade outdated libs
 * Support: Upgrade outdated libs

+ 2 - 2
lib/models/user.js

@@ -522,9 +522,9 @@ module.exports = function(crowi) {
       }
       }
 
 
       debug('Removing user:', userData);
       debug('Removing user:', userData);
-      // 物理削除可能なのは、招待中ユーザーのみ
+      // 物理削除可能なのは、承認待ちユーザー、招待中ユーザーのみ
       // 利用を一度開始したユーザーは論理削除のみ可能
       // 利用を一度開始したユーザーは論理削除のみ可能
-      if (userData.status !== STATUS_INVITED) {
+      if (userData.status !== STATUS_REGISTERED && userData.status !== STATUS_INVITED) {
         return callback(new Error('Cannot remove completely the user whoes status is not INVITED'), null);
         return callback(new Error('Cannot remove completely the user whoes status is not INVITED'), null);
       }
       }
 
 

+ 31 - 21
lib/views/admin/users.html

@@ -197,14 +197,18 @@
                   </li>
                   </li>
                   <li class="divider"></li>
                   <li class="divider"></li>
                   <li class="dropdown-header">ステータス</li>
                   <li class="dropdown-header">ステータス</li>
-                  <li class="dropdown-button">
+
                   {% if sUser.status == 1 %}
                   {% if sUser.status == 1 %}
-                  <form action="/admin/user/{{ sUser._id.toString() }}/activate" method="post">
-                    <input type="hidden" name="_csrf" value="{{ csrf() }}">
-                    <button type="submit" class="btn btn-block btn-info">承認する</button>
-                  </form>
+                  <li class="dropdown-button">
+                    <form action="/admin/user/{{ sUser._id.toString() }}/activate" method="post">
+                      <input type="hidden" name="_csrf" value="{{ csrf() }}">
+                      <button type="submit" class="btn btn-block btn-info">承認する</button>
+                    </form>
+                  </li>
                   {% endif  %}
                   {% endif  %}
+
                   {% if sUser.status == 2 %}
                   {% if sUser.status == 2 %}
+                  <li class="dropdown-button">
                     {% if sUser.username != user.username %}
                     {% if sUser.username != user.username %}
                     <form action="/admin/user/{{ sUser._id.toString() }}/suspend" method="post">
                     <form action="/admin/user/{{ sUser._id.toString() }}/suspend" method="post">
                       <input type="hidden" name="_csrf" value="{{ csrf() }}">
                       <input type="hidden" name="_csrf" value="{{ csrf() }}">
@@ -215,28 +219,34 @@
                     <br>
                     <br>
                     <p class="alert alert-danger">自分自身のアカウントを停止することはできません</p>
                     <p class="alert alert-danger">自分自身のアカウントを停止することはできません</p>
                     {% endif %}
                     {% endif %}
+                  </li>
                   {% endif %}
                   {% endif %}
+
                   {% if sUser.status == 3 %}
                   {% if sUser.status == 3 %}
-                  <form action="/admin/user/{{ sUser._id.toString() }}/activate" method="post">
-                    <input type="hidden" name="_csrf" value="{{ csrf() }}">
-                    <button type="submit" class="btn btn-block btn-default">元に戻す</button>
-                  </form>
+                  <li class="dropdown-button">
+                    <form action="/admin/user/{{ sUser._id.toString() }}/activate" method="post">
+                      <input type="hidden" name="_csrf" value="{{ csrf() }}">
+                      <button type="submit" class="btn btn-block btn-default">元に戻す</button>
+                    </form>
                   </li>
                   </li>
                   <li class="dropdown-button">
                   <li class="dropdown-button">
-                  {# label は同じだけど、こっちは論理削除 #}
-                  <form action="/admin/user/{{ sUser._id.toString() }}/remove" method="post">
-                    <input type="hidden" name="_csrf" value="{{ csrf() }}">
-                    <button type="submit" class="btn btn-block btn-danger">削除する</button>
-                  </form>
-                  {% endif  %}
-                  {% if sUser.status == 5 %}
-                  {# label は同じだけど、こっちは物理削除 #}
-                  <form action="/admin/user/{{ sUser._id.toString() }}/removeCompletely" method="post">
-                    <input type="hidden" name="_csrf" value="{{ csrf() }}">
-                    <button type="submit" class="btn btn-block btn-danger">削除する</button>
-                  </form>
+                    {# label は同じだけど、こっちは論理削除 #}
+                    <form action="/admin/user/{{ sUser._id.toString() }}/remove" method="post">
+                      <input type="hidden" name="_csrf" value="{{ csrf() }}">
+                      <button type="submit" class="btn btn-block btn-danger">削除する</button>
+                    </form>
+                  </li>
                   {% endif  %}
                   {% endif  %}
+
+                  {% if sUser.status == 1 || sUser.status == 5 %}
+                  <li class="dropdown-button">
+                    {# label は同じだけど、こっちは物理削除 #}
+                    <form action="/admin/user/{{ sUser._id.toString() }}/removeCompletely" method="post">
+                      <input type="hidden" name="_csrf" value="{{ csrf() }}">
+                      <button type="submit" class="btn btn-block btn-danger">削除する</button>
+                    </form>
                   </li>
                   </li>
+                  {% endif  %}
 
 
                   {% if sUser.status == 2 %} {# activated な人だけこのメニューを表示 #}
                   {% if sUser.status == 2 %} {# activated な人だけこのメニューを表示 #}
                   <li class="divider"></li>
                   <li class="divider"></li>

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "crowi-plus",
   "name": "crowi-plus",
-  "version": "2.2.1-RC",
+  "version": "2.2.2-RC",
   "description": "Enhanced Crowi",
   "description": "Enhanced Crowi",
   "tags": [
   "tags": [
     "wiki",
     "wiki",