users.html 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. {% extends '../layout/2column.html' %}
  2. {% block html_title %}ユーザー管理 · {% endblock %}
  3. {% block content_head %}
  4. <header id="page-header">
  5. <h1 class="title" id="">ユーザー管理</h1>
  6. </header>
  7. {% endblock %}
  8. {% block content_main %}
  9. <div class="content-main">
  10. {% set smessage = req.flash('successMessage') %}
  11. {% if smessage.length %}
  12. <div class="alert alert-success">
  13. {{ smessage }}
  14. </div>
  15. {% endif %}
  16. {% set emessage = req.flash('errorMessage') %}
  17. {% if emessage.length %}
  18. <div class="alert alert-danger">
  19. {{ emessage }}
  20. </div>
  21. {% endif %}
  22. <div class="row">
  23. <div class="col-md-3">
  24. <ul class="nav nav-pills nav-stacked">
  25. <li><a href="/admin"><i class="fa fa-cube"></i> Wiki管理トップ</a></li>
  26. <li class="active"><a href="/admin/users"><i class="fa fa-users"></i> ユーザー管理</a></li>
  27. </ul>
  28. </div>
  29. <div class="col-md-9">
  30. <table class="table table-hover table-striped table-bordered">
  31. <thead>
  32. <tr>
  33. <th>#</th>
  34. <th>ユーザーID</th>
  35. <th>名前</th>
  36. <th>メールアドレス</th>
  37. <th>作成日</th>
  38. <th>最終ログイン</th>
  39. <th>操作</th>
  40. </tr>
  41. </thead>
  42. <tbody>
  43. {% for sUser in users %}
  44. <tr>
  45. <td>
  46. <img src="{{ sUser|picture }}" class="picture picture-rounded" />
  47. <span class="label {{ css.userStatus(sUser) }}">
  48. {{ consts.userStatus[sUser.status] }}
  49. </span><br>
  50. {% if sUser.admin %}
  51. <span class="label label-primary">
  52. Admin
  53. </span>
  54. {% endif %}
  55. </td>
  56. <td>
  57. <strong>{{ sUser.username }}</strong>
  58. </td>
  59. <td>{{ sUser.name }}</td>
  60. <td>{{ sUser.email }}</td>
  61. <td>{{ sUser.createdAt|date('Y-m-d') }}</td>
  62. <td>{{ sUser.lastLoginAt }}</td>
  63. <td>
  64. <div class="btn-group admin-user-menu">
  65. <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
  66. 編集
  67. <span class="caret"></span>
  68. </button>
  69. <ul class="dropdown-menu" role="menu">
  70. <li class="dropdown-header">編集メニュー</li>
  71. <li>
  72. <a href="">編集</a>
  73. </li>
  74. <li class="divider"></li>
  75. <li class="dropdown-header">ステータス</li>
  76. <li class="dropdown-button">
  77. {% if sUser.status == 1 %}
  78. <form action="/admin/user/{{ sUser._id.toString() }}/activate" method="post">
  79. <button type="submit" class="btn btn-block btn-info">承認する</button>
  80. </form>
  81. {% endif %}
  82. {% if sUser.status == 2 %}
  83. <form action="/admin/user/{{ sUser._id.toString() }}/suspend" method="post">
  84. <button type="submit" class="btn btn-block btn-warning">アカウント停止</button>
  85. </form>
  86. {% endif %}
  87. {% if sUser.status == 3 %}
  88. <form action="/admin/user/{{ sUser._id.toString() }}/activate" method="post">
  89. <button type="submit" class="btn btn-block btn-default">元に戻す</button>
  90. </form>
  91. </li>
  92. <li class="dropdown-button">
  93. <form action="/admin/user/{{ sUser._id.toString() }}/suspend" method="post">
  94. <button type="submit" class="btn btn-block btn-danger">完全に削除する</button>
  95. </form>
  96. {% endif %}
  97. {% if sUser.status == 2 %} {# activated な人だけこのメニューを表示 #}
  98. <li class="divider"></li>
  99. <li class="dropdown-header">管理者メニュー</li>
  100. <li class="dropdown-button">
  101. {% if sUser.admin %}
  102. {% if sUser.username != user.username %}
  103. <form action="/admin/user/{{ sUser._id.toString() }}/removeFromAdmin" method="post">
  104. <button type="submit" class="btn btn-block btn-danger">管理者からはずす</button>
  105. </form>
  106. {% else %}
  107. <p class="alert alert-danger">自分自身を管理者から外すことはできません</p>
  108. {% endif %}
  109. {% else %}
  110. <form action="/admin/user/{{ sUser._id.toString() }}/makeAdmin" method="post">
  111. <button type="submit" class="btn btn-block btn-danger">管理者にする</button>
  112. </form>
  113. {% endif %}
  114. </li>
  115. {% endif %}
  116. </ul>
  117. </div>
  118. </td>
  119. </tr>
  120. {% endfor %}
  121. </tbody>
  122. </table>
  123. <ul class="pagination">
  124. <li {% if pager.currentPage == 1 %}class="disabled"{% endif %}>
  125. <a href="/admin/users?page={{ pager.previous|default(1) }}">&laquo;</a>
  126. </li>
  127. {% if pager.previousDots %}
  128. <li><a href="#">...</a></li>
  129. {% endif %}
  130. {% for page in pager.pages %}
  131. <li {% if pager.currentPage == page %}class="active"{% endif %}>
  132. <a href="/admin/users?page={{ page }}">{{ page }}</a>
  133. </li>
  134. {% endfor %}
  135. {% if pager.nextDots %}
  136. <li><a href="#">...</a></li>
  137. {% endif %}
  138. <li {% if pager.currentPage == pager.pageCount %}class="disabled"{% endif %}>
  139. <a href="/admin/users?page={{ pager.next|default(pager.pageCount) }}">&raquo;</a>
  140. </li>
  141. </ul>
  142. </div>
  143. </div>
  144. </div>
  145. {% endblock content_main %}
  146. {% block content_footer %}
  147. {% endblock content_footer %}
  148. {% block footer %}
  149. {% endblock footer %}