userCanManage(Auth::user()); $show_ip = isSuperUser(Auth::user()); if ($is_manager) { $add_new_contestant_form = new UOJBs4Form('add_new_contestant_form'); $add_new_contestant_form->addInput( 'new_username', 'text', '用户名', '', function ($username, &$vdata) { $user = UOJUser::query($username); if (!$user) { return '用户不存在'; } if (UOJContest::cur()->userHasRegistered($user)) { return '该用户已经报名'; } $vdata['user'] = $user; return ''; }, null ); $add_new_contestant_form->submit_button_config['align'] = 'compressed'; $add_new_contestant_form->submit_button_config['text'] = '注册该用户'; $add_new_contestant_form->handle = function (&$vdata) { UOJContest::cur()->userRegister($vdata['user']); }; $add_new_contestant_form->runAtServer(); $add_group_to_contest_form = new UOJBs4Form('add_group_to_contest'); $add_group_to_contest_form->addInput( 'group_id', 'text', '小组 ID', '', function ($group_id, &$vdata) { if (!validateUInt($group_id)) { return '小组 ID 不合法'; } $group = queryGroup($group_id); if (!$group) { return '小组不存在'; } $vdata['group_id'] = $group_id; return ''; }, null ); $add_group_to_contest_form->submit_button_config['align'] = 'compressed'; $add_group_to_contest_form->submit_button_config['text'] = '注册该小组中的用户'; $add_group_to_contest_form->handle = function (&$vdata) { $users = queryGroupUsers($vdata['group_id']); foreach ($users as $user) { UOJContest::cur()->userRegister($user); } }; $add_group_to_contest_form->runAtServer(); $remove_user_from_contest_form = new UOJBs4Form('remove_user_from_contest'); $remove_user_from_contest_form->addInput( 'remove_username', 'text', '用户名', '', function ($username, &$vdata) { $user = UOJUser::query($username); if (!$user) { return '用户不存在'; } if (!UOJContest::cur()->userHasRegistered($user)) { return '该用户未报名'; } $vdata['user'] = $user; return ''; }, null ); $remove_user_from_contest_form->submit_button_config['align'] = 'compressed'; $remove_user_from_contest_form->submit_button_config['text'] = '移除该用户'; $remove_user_from_contest_form->submit_button_config['class_str'] = 'mt-2 btn btn-danger'; $remove_user_from_contest_form->handle = function (&$vdata) { UOJContest::cur()->userUnregister($vdata['user']); }; $remove_user_from_contest_form->runAtServer(); $force_set_user_participated_form = new UOJBs4Form('force_set_user_participated'); $force_set_user_participated_form->addInput( 'force_set_username', 'text', '用户名', '', function ($username, &$vdata) { $user = UOJUser::query($username); if (!$user) { return '用户不存在'; } if (!UOJContest::cur()->userHasRegistered($user)) { return '该用户未报名'; } $vdata['user'] = $user; return ''; }, null ); $force_set_user_participated_form->submit_button_config['align'] = 'compressed'; $force_set_user_participated_form->submit_button_config['text'] = '强制参赛'; $force_set_user_participated_form->submit_button_config['class_str'] = 'mt-2 btn btn-warning'; $force_set_user_participated_form->handle = function (&$vdata) { UOJContest::cur()->markUserAsParticipated($vdata['user']); }; $force_set_user_participated_form->runAtServer(); } if ($contest['cur_progress'] == CONTEST_NOT_STARTED) { $iHasRegistered = UOJContest::cur()->userHasRegistered(Auth::user()); if ($iHasRegistered) { if ($iHasRegistered && UOJContest::cur()->freeRegistration()) { $unregister_form = new UOJBs4Form('unregister'); $unregister_form->handle = function () { UOJContest::cur()->userUnregister(Auth::user()); }; $unregister_form->submit_button_config['class_str'] = 'btn btn-danger btn-xs'; $unregister_form->submit_button_config['text'] = '取消报名'; $unregister_form->succ_href = "/contests"; $unregister_form->runAtServer(); } } } ?>