problem_managers_manage.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. requirePHPLib('form');
  3. if (!validateUInt($_GET['id']) || !($problem = queryProblemBrief($_GET['id']))) {
  4. become404Page();
  5. }
  6. if (!hasProblemCtrlPermission($myUser, $problem)) {
  7. become403Page();
  8. }
  9. $managers_form = newAddDelCmdForm('managers',
  10. function($username) {
  11. if (!validateUsername($username) || !queryUser($username)) {
  12. return "不存在名为{$username}的用户";
  13. }
  14. return '';
  15. },
  16. function($type, $username) {
  17. global $problem;
  18. if ($type == '+') {
  19. DB::query("insert into problems_permissions (problem_id, username) values (${problem['id']}, '$username')");
  20. } elseif ($type == '-') {
  21. DB::query("delete from problems_permissions where problem_id = ${problem['id']} and username = '$username'");
  22. }
  23. }
  24. );
  25. $managers_form->runAtServer();
  26. ?>
  27. <?php echoUOJPageHeader(HTML::stripTags($problem['title']) . ' - 管理者 - 题目管理') ?>
  28. <h1 class="page-header" align="center">#<?=$problem['id']?> : <?=$problem['title']?> 管理</h1>
  29. <ul class="nav nav-tabs" role="tablist">
  30. <li class="nav-item"><a class="nav-link" href="/problem/<?= $problem['id'] ?>/manage/statement" role="tab">编辑</a></li>
  31. <li class="nav-item"><a class="nav-link active" href="/problem/<?= $problem['id'] ?>/manage/managers" role="tab">管理者</a></li>
  32. <li class="nav-item"><a class="nav-link" href="/problem/<?= $problem['id'] ?>/manage/data" role="tab">数据</a></li>
  33. <li class="nav-item"><a class="nav-link" href="/problem/<?=$problem['id']?>" role="tab">返回</a></li>
  34. </ul>
  35. <table class="table table-hover">
  36. <thead>
  37. <tr>
  38. <th>#</th>
  39. <th>用户名</th>
  40. </tr>
  41. </thead>
  42. <tbody>
  43. <?php
  44. $row_id = 0;
  45. $result = DB::query("select username from problems_permissions where problem_id = ${problem['id']}");
  46. while ($row = DB::fetch($result, MYSQLI_ASSOC)) {
  47. $row_id++;
  48. echo '<tr>', '<td>', $row_id, '</td>', '<td>', getUserLink($row['username']), '</td>', '</tr>';
  49. }
  50. ?>
  51. </tbody>
  52. </table>
  53. <p class="text-center">命令格式:命令一行一个,+mike表示把mike加入管理者,-mike表示把mike从管理者中移除</p>
  54. <?php $managers_form->printHTML(); ?>
  55. <?php echoUOJPageFooter() ?>