| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- <?php
- requirePHPLib('form');
- requirePHPLib('judger');
-
- if ($myUser == null) {
- become403Page();
- }
-
- $cur_tab = isset($_GET['tab']) ? $_GET['tab'] : 'info';
- if (!isset($_GET['group']))
- become404Page();
- $groupname = $_GET['group'];
- $group = queryUser($_GET['group']);
- if (!hasGroupCtrlPermission($myUser, $group))
- become403Page();
- $tabs_info = array(
- 'info' => array(
- 'name' => '信息管理',
- 'url' => "/group-manage/$groupname/info"
- ),
- 'members' => array(
- 'name' => "成员管理",
- 'url' => "/group-manage/$groupname/members"
- ),
- 'problems' => array(
- 'name' => '题目管理',
- 'url' => "/group-manage/$groupname/problems"
- ),
- 'disk' => array(
- 'name' => '空间管理',
- 'url' => "/group-manage/$groupname/disk"
- )
- );
-
- $member_form = new UOJForm('member');
- $member_form->addInput('username', 'text', '用户名', '',
- function ($username) {
- global $groupname;
- if (!validateUsername($username)) {
- return '用户名不合法';
- }
- $user = queryUser($username);
- if (!$user) {
- return '用户不存在';
- }
- if (!in_array($groupname, queryUserExtgroups($user)))
- return '用户不属于该组';
- return '';
- },
- null
- );
- $options = array(
- 'banneduser' => '踢出用户',
- 'normaluser' => '设为普通用户',
- 'superuser' => '设为超级用户'
- );
- $member_form->addSelect('op-type', $options, '操作类型', '');
- $member_form->handle = function() {
- global $member_form;
- global $group;
-
- $username = $_POST['username'];
- switch ($_POST['op-type']) {
- case 'banneduser':
- deattachUserFromGroup(queryUser($username), $group);
- break;
- case 'normaluser':
- removeGroupPermission(queryUser($username), $group);
- break;
- case 'superuser':
- giveGroupPermission(queryUser($username), $group);
- break;
- }
- };
- $member_form->runAtServer();
-
- $user_form = new UOJForm('user');
- $user_form->addInput('usernamep', 'text', '用户名', '',
- function ($username) {
- global $groupname;
- if (!validateUsername($username)) {
- return '用户名不合法';
- }
- $user = queryUser($username);
- if (!$user) {
- return '用户不存在';
- }
- if (in_array($groupname, queryUserExtgroups($user)))
- return '用户已经属于该组';
- return '';
- },
- null
- );
- $user_form->handle = function() {
- global $member_form;
- global $group;
-
- $username = $_POST['usernamep'];
- attachUserToGroup(queryUser($username), $group);
- };
- $user_form->runAtServer();
-
- $nick_form = new UOJForm('nick');
- $nick_form->addInput('nick', 'text', '新昵称', '',
- function ($username) {
- return '';
- },
- null
- );
- $nick_form->handle = function() {
- global $groupname;
- $esc_nick = DB::escape($_POST['nick']);
- DB::update("update user_info set email = '$esc_nick' where username = '$groupname'");
- };
- $nick_form->runAtServer();
- if (!isset($tabs_info[$cur_tab])) {
- become404Page();
- }
- ?>
- <?php
- requireLib('hljs');
- requireLib('morris');
- ?>
- <?php echoUOJPageHeader('组管理') ?>
- <div class="row">
- <div class="col-sm-3">
- <?= HTML::tablist($tabs_info, $cur_tab, 'nav-pills flex-column') ?>
- </div>
-
- <div class="col-sm-9">
- <?php if ($cur_tab == 'info'): ?>
- <div>
- <h4>更改信息</h4>
- <?php $nick_form->printHTML() ?>
- </div>
- <?php elseif ($cur_tab === 'members'): ?>
- <div>
- <h4>成员操作</h4>
- <?php $member_form->printHTML() ?>
- <h4>添加用户进组</h4>
- <?php $user_form->printHTML() ?>
- <h4><?php echo $groupname ?> 成员列表</h4>
- <?php echoGroupMemberList($group) ?>
- </div>
- <?php elseif ($cur_tab == 'problems'): ?>
- <div>
- <h4><?php echo $groupname ?> 题目列表</h4>
- <?php echoGroupProblemList($group) ?>
- </div>
- <?php elseif ($cur_tab == 'disk'): ?>
- <div>
- <h4>空间管理</h4>
- <p>实际占用空间:<b class="text-danger">
- <?php echo printSize(queryGroupTotalSize($group)) ?></b><br>
- 可用空间配额:<b class="text-danger"><?php echo printSize(queryGroupQuota($group)) ?></b></p>
- <?php echoGroupProblemSizeList($group) ?>
- </div>
- <?php endif ?>
- </div>
- </div>
- <?php echoUOJPageFooter() ?>
|