function get_users_projects($user) { global $has_projects; $sa_url = get_first_service_of_type(SR_SERVICE_TYPE::SLICE_AUTHORITY); $member_id = $user->account_id; $projects = get_project_info_for_member($sa_url, $user, $member_id); $options = ''; foreach ($projects as $project) { $project_id = $project[PA_PROJECT_TABLE_FIELDNAME::PROJECT_ID]; if ($user->isAllowed(SA_ACTION::CREATE_SLICE, CS_CONTEXT_TYPE::PROJECT, $project_id)) { $options .= "<option value='" . $project_id . "'>"; $options .= $project[PA_PROJECT_TABLE_FIELDNAME::PROJECT_NAME]; $options .= "</option>"; $has_projects = true; } } if ($has_projects) { $select = "<select name='project_id' form='createsliceform'>{$options}</select>"; } else { $select = '<i>You are not a member of any project where you can create a slice. </i><a href="dashboard.php#projects">View projects</a>'; } return $select; }
require_once "user.php"; require_once "am_client.php"; require_once "ma_client.php"; $user = geni_loadUser(); if (!isset($user)) { relative_redirect('home.php'); } $ma_url = get_first_service_of_type(SR_SERVICE_TYPE::MEMBER_AUTHORITY); $sa_url = get_first_service_of_type(SR_SERVICE_TYPE::SLICE_AUTHORITY); $default_project = null; $dest_file = 'omni.bundle'; if (array_key_exists('project', $_REQUEST)) { $default_project = $_REQUEST['project']; $dest_file = $_REQUEST['file']; } $projects_info = get_project_info_for_member($sa_url, $user, $user->account_id); // error_log("PROJECTS = " . print_r($projects_info, true)); // Add ssh keys to zip function add_ssh_keys_to_zip($keys, $zip) { $filenames = array(); // Sort key_info to do those with no private key first, so we can rename // those with a private key if necessary afterwards if (count($keys) > 1) { $ki2 = array(); foreach ($keys as $key_info) { $sshkey_priv = $key_info[MA_SSH_KEY_TABLE_FIELDNAME::PRIVATE_KEY]; if (!isset($sshkey_priv)) { $ki2[] = $key_info; } }