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;
}
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);
    }
}
Exemple #3
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);
    }
}
Exemple #4
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;
    }
}
function resolve_pending_request($args)
{
    $request_id = null;
    if (array_key_exists(RQ_ARGUMENTS::REQUEST_ID, $args)) {
        $request_id = $args[RQ_ARGUMENTS::REQUEST_ID];
    }
    if (!isset($request_id) or is_null($request_id)) {
        return generate_response(RESPONSE_ERROR::ARGS, '', 'No request_id given');
    }
    $context_type = null;
    if (array_key_exists(RQ_ARGUMENTS::CONTEXT_TYPE, $args)) {
        $context_type = $args[RQ_ARGUMENTS::CONTEXT_TYPE];
    }
    $resolution_status = null;
    if (array_key_exists(RQ_ARGUMENTS::RESOLUTION_STATUS, $args)) {
        $resolution_status = $args[RQ_ARGUMENTS::RESOLUTION_STATUS];
    }
    $resolver = null;
    if (array_key_exists(RQ_ARGUMENTS::RESOLVER, $args)) {
        $resolver = $args[RQ_ARGUMENTS::RESOLVER];
    }
    $resolution_description = null;
    if (array_key_exists(RQ_ARGUMENTS::RESOLUTION_DESCRIPTION, $args)) {
        $resolution_description = $args[RQ_ARGUMENTS::RESOLUTION_DESCRIPTION];
    }
    $now = new DateTime(null, new DateTimeZone('UTC'));
    $conn = db_conn();
    $sql = "UPDATE " . get_request_tablename($context_type) . " SET " . RQ_REQUEST_TABLE_FIELDNAME::STATUS . " = " . $conn->quote($resolution_status, 'integer') . ", " . RQ_REQUEST_TABLE_FIELDNAME::RESOLUTION_DESCRIPTION . " = " . $conn->quote($resolution_description, 'text') . ", " . RQ_REQUEST_TABLE_FIELDNAME::RESOLUTION_TIMESTAMP . " = " . $conn->quote(db_date_format($now), 'timestamp') . ", " . RQ_REQUEST_TABLE_FIELDNAME::RESOLVER . " = " . $conn->quote($resolver, 'text') . " WHERE " . RQ_REQUEST_TABLE_FIELDNAME::ID . " = " . $conn->quote($request_id, 'integer');
    //  error_log("resolve_pending_request.sql = " . $sql);
    $result = db_execute_statement($sql);
    return $result;
}