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); } }
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); } }
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; }