.
// Interface for controlling user permissions to submit jobs
require_once("../inc/submit_db.inc");
require_once("../inc/util.inc");
require_once("../inc/util_ops.inc");
function user_row($u) {
$user = BoincUser::lookup_id($u->user_id);
echo "
$user->name $user->email_addr |
";
echo "";
if ($u->all_apps) {
echo "All\n";
} else {
$uas = BoincUserSubmitApp::enum("user_id=$u->user_id");
foreach ($uas as $ua) {
$app = BoincApp::lookup_id($ua->app_id);
echo "$app->name ";
}
}
echo " | \n";
echo "$u->quota | \n";
echo "
user_id>Edit
|
";
}
function handle_list() {
admin_page_head("User job submission permissions");
$us = BoincUserSubmit::enum("");
start_table();
table_header("User", "Applications", "Quota", "");
foreach ($us as $u) {
user_row($u);
}
end_table();
show_button("submit_permissions.php?action=add_form", "Add user", "Add user");
admin_page_tail();
}
function handle_edit_form() {
$user_id = get_int('user_id');
$user = BoincUser::lookup_id($user_id);
$usub = BoincUserSubmit::lookup_userid($user_id);
admin_page_head("Edit user job submission permissions for $user->name");
echo "
";
admin_page_tail();
}
function handle_edit_action() {
$user_id = get_int('user_id');
$us = BoincUserSubmit::lookup_userid($user_id);
if (!$us) admin_error_page("user not found");
BoincUserSubmitApp::delete_user($user_id);
$all_apps = get_str('all_apps');
if ($all_apps) {
$us->update("all_apps=1");
} else {
$us->update("all_apps=0");
$apps = BoincApp::enum("deprecated=0");
foreach ($apps as $app) {
$x = "app_$app->id";
if (get_str($x, true)) {
BoincUserSubmitApp::insert("(user_id, app_id) values ($user_id, $app->id)");
}
}
}
$quota = (double) get_str('quota');
if ($quota != $us->quota) {
$us->update("quota=$quota");
}
admin_page_head("User permissions updated");
admin_page_tail();
}
function handle_add_form() {
admin_page_head("Add user");
echo "
";
admin_page_tail();
}
function handle_add_action() {
$user_id = get_int('user_id');
$user = BoincUser::lookup_id($user_id);
if (!$user) admin_error_page("no such user");
$us = BoincUserSubmit::lookup_userid($user_id);
if (!$us) {
if (!BoincUserSubmit::insert("(user_id) values ($user_id)")) {
admin_error_page("Insert failed");
}
}
header("Location: submit_permissions.php?action=edit_form&user_id=$user_id");
}
$action = get_str('action', true);
switch ($action) {
case 'list':
case '':
handle_list(); break;
case 'add_form':
handle_add_form(); break;
case 'add_action':
handle_add_action(); break;
case 'edit_form':
handle_edit_form(); break;
case 'edit_action':
handle_edit_action(); break;
default:
admin_error_page("unknown action: $action");
}
?>