function search_for_users($term, $search_type, $signer, $ma_url) { if ($search_type == "email") { $results = lookup_members_by_email($ma_url, $signer, array($term)); return $results[$term]; } else { if ($search_type == "lastname") { $searchkey = "MEMBER_LASTNAME"; } else { $searchkey = "MEMBER_USERNAME"; } $results = ma_lookup_members_by_identifying($ma_url, $signer, $searchkey, $term); $ids = array(); foreach ($results as $member) { $ids[] = $member->member_id; } return $ids; } }
function search_for_slices($term, $search_type, $signer, $ma_url, $sa_url) { if ($search_type == "urn") { if (is_valid_urn($term)) { // don't redirect to the error page if you can't find a slice global $put_message_result_handler; $put_message_result_handler = 'no_redirect_result_handler'; $results = lookup_slice_by_urn($sa_url, $signer, $term); } else { print "<p>Error: invalid URN</p>"; return array(); } if (count($results) > 0) { return lookup_slice_details($sa_url, $signer, array($results[0])); } else { return array(); } } else { if ($search_type == "owner_email") { $email_results = lookup_members_by_email($ma_url, $signer, array($term)); if (count($email_results) > 0) { $member_ids_arr = $email_results[$term]; $member_id = $member_ids_arr[0]; $slices = get_slices_for_member($sa_url, $signer, $member_id, true); $slice_ids = array(); foreach ($slices as $slice) { if ($slice[SA_SLICE_MEMBER_TABLE_FIELDNAME::ROLE] == CS_ATTRIBUTE_TYPE::LEAD && $slice[SA_SLICE_TABLE_FIELDNAME::EXPIRED] != 1) { $slice_ids[] = $slice[SA_SLICE_TABLE_FIELDNAME::SLICE_ID]; } } return lookup_slice_details($sa_url, $signer, $slice_ids); } else { return array(); } } else { print "<p>Error: searching by {$search_type} not yet implemented</p>"; return array(); } } }
$invitee_string = $_REQUEST["to"]; // split on ,; $invitees = preg_split("/[\\s,;]+/", $invitee_string); for ($i = 0; $i < count($invitees); $i++) { $invitees[$i] = trim($invitees[$i]); $invitees[$i] = filter_var($invitees[$i], FILTER_SANITIZE_EMAIL); if (!filter_var($invitees[$i], FILTER_VALIDATE_EMAIL)) { //error_log("invite-to-project Skipping invitee " . $invitees[$i] . " that seems invalid"); if ($skips !== "") { $skips = $skips . ", "; } $skips = $skips . $invitees[$i]; $invitees[$i] = null; } //Now check if invitee is already in project $members_by_email = lookup_members_by_email($ma_url, $user, $invitees); $members_by_email = array_change_key_case($members_by_email, CASE_LOWER); $project_members = get_project_members($sa_url, $user, $project_id); $project_member_ids = array(); foreach ($project_members as $project_member) { $project_member_id = $project_member[PA_PROJECT_MEMBER_TABLE_FIELDNAME::MEMBER_ID]; $project_member_ids[] = $project_member_id; } foreach ($members_by_email as $member_array) { $member_id = $member_array[0]; $is_member = $member_id != null && in_array($member_id, $project_member_ids); if ($is_member) { if ($in_projects !== "") { $in_projects = $in_projects . ", "; } $in_projects = $in_projects . $invitees[$i];
if ($skips !== "") { $skips = $skips . ", "; } $skips = $skips . $email; continue; } $name = trim($parts[1]); $role = null; if (count($parts) > 2) { $role = trim($parts[2]); } $names_by_email[$email] = $name; $roles_by_email[$email] = $role; } if (count(array_keys($names_by_email)) > 0) { $members_by_email = lookup_members_by_email($ma_url, $user, array_keys($names_by_email)); $members_by_email = array_change_key_case($members_by_email, CASE_LOWER); } //error_log("NBE = " . print_r($names_by_email, true)); //error_log("RBE = " . print_r($roles_by_email, true)); foreach ($names_by_email as $email => $name) { $member_id = null; $recognized = "No"; $role = null; if (array_key_exists(strtolower($email), $members_by_email) && count($members_by_email[strtolower($email)] == 1)) { $member_id = $members_by_email[strtolower($email)][0]; $recognized = "Yes"; } if (array_key_exists(strtolower($email), array_change_key_case($roles_by_email)) && count($roles_by_email[strtolower($email)] == 1)) { $role = $roles_by_email[$email]; }