예제 #1
0
 public function testPutBasic()
 {
     /**
      * 	Tests a basic PUT.
      *
      * 	We attempt to change the user's password, realname, and access level.
      */
     $this->request->populate('http://mantis.localhost/rest/users/4', 'PUT', 'dan', 'dan', '{"username":"******","password":"******","realname":"hey thanks","email":"dan@localhost","date_created":"2008-10-04T16:20:14-04:00","last_visit":"2008-11-23T16:19:17-05:00","enabled":true,"protected":false,"access_level":"viewer","login_count":0,"lost_password_request_count":0,"failed_login_count":0}');
     $resp = $this->service->handle($this->request);
     $this->assertEquals($resp->status, 204);
     $this->assertEquals($resp->body, '');
     $this->request->populate('http://mantis.localhost/rest/users/4', 'GET', 'somebody', 'newpass');
     user_clear_cache();
     try {
         $resp = $this->service->handle($this->request);
     } catch (HTTPException $e) {
         if ($e->resp->status == 401) {
             $this->fail('Failed to change password');
         } else {
             throw $e;
         }
     }
     $new_user = json_decode($resp->body, TRUE);
     $this->assertEquals($new_user['realname'], 'hey thanks');
     $this->assertEquals($new_user['access_level'], 'viewer');
 }
예제 #2
0
/**
 * Sets multiple fields on a user
 *
 * @param integer $p_user_id A valid user identifier.
 * @param array   $p_fields  Keys are the field names and the values are the field values.
 * @return void
 */
function user_set_fields($p_user_id, array $p_fields)
{
    if (!array_key_exists('protected', $p_fields)) {
        user_ensure_unprotected($p_user_id);
    }
    $t_query = 'UPDATE {user}';
    $t_parameters = array();
    foreach ($p_fields as $t_field_name => $t_field_value) {
        $c_field_name = db_prepare_string($t_field_name);
        if (count($t_parameters) == 0) {
            $t_query .= ' SET ' . $c_field_name . '=' . db_param();
        } else {
            $t_query .= ' , ' . $c_field_name . '=' . db_param();
        }
        array_push($t_parameters, $t_field_value);
    }
    $t_query .= ' WHERE id=' . db_param();
    array_push($t_parameters, (int) $p_user_id);
    db_query($t_query, $t_parameters);
    user_clear_cache($p_user_id);
}
예제 #3
0
function user_set_field($p_user_id, $p_field_name, $p_field_value)
{
    $c_user_id = db_prepare_int($p_user_id);
    $c_field_name = db_prepare_string($p_field_name);
    $c_field_value = db_prepare_string($p_field_value);
    if ($p_field_name != "protected") {
        user_ensure_unprotected($p_user_id);
    }
    $t_user_table = config_get('mantis_user_table');
    $query = "UPDATE {$t_user_table}\n\t\t\t\t  SET {$c_field_name}='{$c_field_value}'\n\t\t\t\t  WHERE id='{$c_user_id}'";
    db_query($query);
    user_clear_cache($p_user_id);
    #db_query() errors on failure so:
    return true;
}
예제 #4
0
function user_set_field($p_user_id, $p_field_name, $p_field_value)
{
    $c_user_id = db_prepare_int($p_user_id);
    $c_field_name = db_prepare_string($p_field_name);
    if ($p_field_name != 'protected') {
        user_ensure_unprotected($p_user_id);
    }
    $t_user_table = db_get_table('user');
    $query = 'UPDATE ' . $t_user_table . ' SET ' . $c_field_name . '=' . db_param() . ' WHERE id=' . db_param();
    db_query_bound($query, array($p_field_value, $c_user_id));
    user_clear_cache($p_user_id);
    # db_query errors on failure so:
    return true;
}
예제 #5
0
/**
 * Logout the current user and remove any remaining cookies from their browser
 * Returns true on success, false otherwise
 * @access public
 */
function auth_logout()
{
    global $g_cache_current_user_id, $g_cache_cookie_valid;
    # clear cached userid
    user_clear_cache($g_cache_current_user_id);
    $g_cache_current_user_id = null;
    $g_cache_cookie_valid = null;
    # clear cookies, if they were set
    if (auth_clear_cookies()) {
        helper_clear_pref_cookies();
    }
    if (HTTP_AUTH == config_get('login_method')) {
        auth_http_set_logout_pending(true);
    }
    session_clean();
}