function handle_edit_form() { $user_id = get_int('user_id'); $user = BoincUser::lookup_id($user_id); $usub = BoincUserSubmit::lookup_userid($user_id); page_head("Permissions for {$user->name}"); echo "\n {$user->name} is allowed to submit jobs for:\n <p>\n <form action=manage_project.php>\n <input type=hidden name=action value=edit_action>\n <input type=hidden name=user_id value={$user_id}>\n "; if ($usub->submit_all) { $all_checked = "checked"; $not_all_checked = ""; } else { $all_checked = ""; $not_all_checked = "checked"; } echo "<input type=radio name=submit_all value=1 {$all_checked}> All apps\n <br>\n <input type=radio name=submit_all value=0 {$not_all_checked}> Only selected apps:\n "; $apps = BoincApp::enum("deprecated=0"); foreach ($apps as $app) { $us = BoincUserSubmitApp::lookup("user_id={$user_id} and app_id={$app->id}"); $checked = $us ? "checked" : ""; echo "<br> <input type=checkbox name=app_{$app->id} {$checked}> {$app->name}\n"; } $q = (string) $usub->quota; $sav = $usub->create_app_versions ? "checked" : ""; $sa = $usub->create_apps ? "checked" : ""; echo "\n <p>\n Quota: <input name=quota value={$q}>\n This determines how much computing capacity is allocated to {$user->name}.\n <p>\n <input type=submit value=OK>\n </form>\n <p>\n <a href=manage_project.php>Return to project-wide management functions</a>\n "; page_tail(); }
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); }
page_head("Update successful"); echo "\n <a href=manage_app.php?app_id={$app->id}>Return to application management page</a>\n "; page_tail(); } $user = get_logged_in_user(); $app_id = get_int("app_id"); $app = BoincApp::lookup_id($app_id); if (!$app) { error_page("no such app"); } $bus = BoincUserSubmit::lookup_userid($user->id); if (!$bus) { error_page("no access"); } if (!$bus->manage_all) { $busa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app_id}"); if (!$busa || !$busa->manage) { error_page("no access"); } } $action = get_str("action", true); switch ($action) { //case "": // main_page($app); break; case "app_version_form": app_version_form($app); break; case "app_version_action": app_version_action($app); break; //case "permissions_form":
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"); }