function authenticate_user($r, $app) { $auth = (string) $r->authenticator; if (!$auth) { error("no authenticator"); } $user = BoincUser::lookup("authenticator='{$auth}'"); if (!$user) { error("bad authenticator"); } $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { error("no submit access"); } if ($app && !$user_submit->submit_all) { $usa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}"); if (!$usa) { error("no submit access"); } } return array($user, $user_submit); }
function handle_edit_action() { $user_id = get_int('user_id'); $us = BoincUserSubmit::lookup_userid($user_id); if (!$us) { error_page("user not found"); } BoincUserSubmitApp::delete_user($user_id); $submit_all = get_str('submit_all'); if ($submit_all) { $us->update("submit_all=1"); } else { $us->update("submit_all=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}"); } page_head("Update successful"); echo "<a href=manage_project.php>Return to project-wide management functions</a>"; page_tail(); }
function permissions_action($app) { $busas = BoincUserSubmitApp::enum("app_id={$app->id}"); foreach ($busas as $busa) { if (!get_str("user_{$busa->user_id}", true)) { BoincUserSubmitApp::delete_user($busa->user_id); } } $userid = get_int("new_user_id", true); if ($userid) { BoincUserSubmitApp::insert("(user_id, app_id) values ({$userid}, {$app->id})"); } page_head("Update successful"); echo "\n <a href=manage_app.php?app_id={$app->id}>Return to application management page</a>\n "; page_tail(); }
function eligible_apps() { global $user; $apps = BoincApp::enum("deprecated = 0"); $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { return null; } $a = array(); foreach ($apps as $app) { if ($user_submit->submit_all) { $a[] = $app; } else { if (BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}")) { $a[] = $app; } } } return $a; }
function check_access($user, $batch) { if ($user->id == $batch->user_id) { return; } $user_submit = BoincUserSubmit::lookup_userid($user->id); if ($user_submit->manage_all) { return; } $usa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$batch->app_id}"); if ($usa->manage) { return; } error_page("no access"); }
submit_job($app, $batch_id, $info, $cmdline, $i); $i++; } } } $user = get_logged_in_user(); $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { error_page("no submit access"); } $app = BoincApp::lookup("name='lammps'"); if (!$app) { error_page("no lammps app"); } if (!$user_submit->submit_all) { $usa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}"); if (!$usa) { error_page("no submit access"); } } $action = get_str('action', true); switch ($action) { case '': show_submit_form($user); break; case 'prepare': prepare_batch($user); break; case 'submit': submit_batch($user, $app); break;
function handle_edit_action() { $user_id = get_int('user_id'); $us = BoincUserSubmit::lookup_userid($user_id); if (!$us) { error_page("user not found"); } BoincUserSubmitApp::delete_user($user_id); $submit_all = get_str('submit_all'); if ($submit_all) { $us->update("submit_all=1"); } else { $us->update("submit_all=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}"); } $mj = (int) get_str('max_jobs_in_progress'); if ($mj != $us->max_jobs_in_progress) { $us->update("max_jobs_in_progress={$mj}"); } header('Location: manage_project.php'); }