function set_preferences($user_urn, $preferences)
{
    global $possible_prefs;
    $conn = portal_conn();
    $db_user_urn = $conn->quote($user_urn, "text");
    $success_string = "";
    foreach ($preferences as $pref_name => $pref_value) {
        if (array_key_exists($pref_name, $possible_prefs)) {
            if (in_array($pref_value, $possible_prefs[$pref_name])) {
                $pref_name = $conn->quote($pref_name, "text");
                $pref_value = $conn->quote($pref_value, "text");
                $sql = "UPDATE user_preferences SET preference_value={$pref_value} " . "WHERE user_urn={$db_user_urn} and preference_name={$pref_name}; " . "INSERT INTO user_preferences (user_urn, preference_name, preference_value) " . "SELECT {$db_user_urn}, {$pref_name}, {$pref_value} " . "WHERE NOT EXISTS (SELECT 1 FROM user_preferences WHERE user_urn={$db_user_urn} and preference_name={$pref_name});";
                $db_response = db_execute_statement($sql, "Update user preferences");
                $db_error = $db_response[RESPONSE_ARGUMENT::OUTPUT];
                if ($db_error == "") {
                    $success_string = "Preferences saved.";
                } else {
                    print "Error while saving preferences. Please try again.";
                    error_log("DB error when updating user_preferences table: " . $db_error);
                }
            } else {
                error_log("Tried to set {$pref_name} to invalid value {$pref_value} for user {$user_urn}");
            }
        } else {
            error_log("Tried to set invalid preference {$pref_name} for user {$user_urn}");
        }
    }
    print $success_string;
}
Ejemplo n.º 2
0
function get_preference($user_urn, $preference)
{
    global $possible_prefs;
    $conn = portal_conn();
    if (array_key_exists($preference, $possible_prefs)) {
        $sql = "SELECT * from user_preferences " . "where user_urn = " . $conn->quote($user_urn, 'text') . "and preference_name = " . $conn->quote($preference, 'text');
        $db_res = db_fetch_row($sql);
        $db_response = db_fetch_row($sql, "Get user preference");
        $db_error = $db_response[RESPONSE_ARGUMENT::OUTPUT];
        $default_option = $possible_prefs[$preference][0];
        if ($db_error != "") {
            // TODO: What do we do here
            error_log("DB error when getting row from user_preferences table: " . $db_error);
            return $default_option;
        } else {
            if ($db_response[RESPONSE_ARGUMENT::VALUE]['preference_value']) {
                return $db_response[RESPONSE_ARGUMENT::VALUE]['preference_value'];
            } else {
                return $default_option;
            }
        }
    } else {
        error_log("Unknown preference '{$preference}' requested for user '{$user_urn}'");
        return "";
    }
}
function handle_lead_request($request_id, $new_status, $approver, $user_uid, $reason, $signer)
{
    $ma_url = get_first_service_of_type(SR_SERVICE_TYPE::MEMBER_AUTHORITY);
    $conn = portal_conn();
    if ($new_status == "approved") {
        $response = add_member_privilege($ma_url, $signer, $user_uid, "PROJECT_LEAD");
        if (!$response) {
            error_log("User {$user_uid} already a project lead, cannot be made a project lead");
        } else {
            send_approved_mail(geni_load_user_by_member_id($user_uid), $reason, $approver);
        }
    }
    $sql = "UPDATE lead_request set " . "status = " . $conn->quote($new_status, 'text') . ", " . "reason = " . $conn->quote($reason, 'text') . ", " . "approver = " . $conn->quote($approver, 'text') . "where id = " . $conn->quote($request_id, 'text');
    $db_response = db_execute_statement($sql, "Update lead request id#:" . $request_id);
    $db_error = $db_response[RESPONSE_ARGUMENT::OUTPUT];
    if ($db_error == "") {
        print "Response successfully stored";
    } else {
        print "DB error: " . $db_error;
        error_log("DB error when updating lead request table: " . $db_error);
    }
}
Ejemplo n.º 4
0
function store_lead_request($urn, $uuid, $eppn)
{
    $conn = portal_conn();
    $sql = "INSERT into lead_request " . "(requester_urn, requester_uuid, requester_eppn) " . "values (" . $conn->quote($urn, 'text') . ", " . $conn->quote($uuid, 'text') . ", " . $conn->quote($eppn, 'text') . ")";
    $db_response = db_execute_statement($sql, "insert lead request", true);
    $db_error = $db_response[RESPONSE_ARGUMENT::OUTPUT];
    if ($db_error != "") {
        error_log("DB error when adding note to lead request table: " . $db_error);
    }
}
Ejemplo n.º 5
0
function delete_speaks_for($token)
{
    $conn = portal_conn();
    $q_token = $conn->quote($token, 'text');
    $sql = 'DELETE FROM speaks_for';
    $sql .= ' WHERE token = ' . $q_token;
    /* print "Query = $sql<br/>"; */
    $result = db_execute_statement($sql, "delete_speaks_for");
    if ($result[RESPONSE_ARGUMENT::CODE] != RESPONSE_ERROR::NONE) {
        $msg = "delete_speaks_for: " . $result[RESPONSE_ARGUMENT::OUTPUT];
        geni_syslog(GENI_SYSLOG_PREFIX::PORTAL, $msg);
        error_log($msg);
        return FALSE;
    } else {
        return TRUE;
    }
}
Ejemplo n.º 6
0
function quotify($str)
{
    $conn = portal_conn();
    return $conn->quote($str);
}
Ejemplo n.º 7
0
    <li><a href='#leadrequests'>Lead Requests</a></li>
    <li><a href='#usersearch'>User Search</a></li>
    <li style="border-right: none"><a href='#slicesearch'>Slice Search</a></li>
  </ul>
</div>
<div id ='loading' style='display: none;'><h2 style="border: 0px; text-align: center;">Loading...</h2></div>
<div style='text-align:center; font-weight: bold;' id='resultsbox'></div>


<div id='leadrequests'>
<h2>Open lead requests</h2>

<?php 
// Find open lead requests and display table with information about the requesters
$ma_url = get_first_service_of_type(SR_SERVICE_TYPE::MEMBER_AUTHORITY);
$conn = portal_conn();
$sql = "SELECT *" . " FROM lead_request WHERE status='open'";
$rows = db_fetch_rows($sql, "fetch all lead requests for admin page");
$lead_requests = $rows[RESPONSE_ARGUMENT::VALUE];
$requester_uuids = array();
foreach ($lead_requests as $lead_request) {
    $requester_uuids[] = $lead_request['requester_uuid'];
}
$requester_details = lookup_member_details($ma_url, $user, $requester_uuids);
print "<table><tr><th>Name</th><th>Link</th><th>Requested At</th><th>Email</th><th>Admin Notes</th><th>Actions</th></tr>";
$open_requests = 0;
foreach ($lead_requests as $lead_request) {
    $requester_uuid = $lead_request['requester_uuid'];
    $notes = $lead_request['notes'] == "" ? "None" : $lead_request['notes'];
    $timestamp = dateUIFormat($lead_request['request_ts']);
    $request_id = $lead_request['id'];