function set_current_user()
{
    $AnonymousUser = array('id' => null, 'level' => 0, 'name' => "Anonymous", 'pretty_name' => "Anonymous", 'is_anonymous' => true, 'show_samples' => true, 'has_avatar' => false, 'language' => '', 'secondary_languages' => '', 'secondary_language_array' => array(), 'ip_addr' => $_SERVER['REMOTE_ADDR'], 'pool_browse_mode' => 1);
    // if(!empty(User::$current)) {
    if (!empty($_SESSION[CONFIG::app_name]['user_id'])) {
        User::$current = User::find($_SESSION[CONFIG::app_name]['user_id']);
    } elseif (isset($_COOKIE['login']) && isset($_COOKIE['pass_hash'])) {
        User::$current = User::authenticate_hash($_COOKIE['login'], $_COOKIE['pass_hash']);
    } elseif (isset(Request::$params->login) && isset(Request::$params->password_hash)) {
        User::$current = User::authenticate(Request::$params->login, Request::$params->password_hash);
    } elseif (isset(Request::$params->user['name']) && isset(Request::$params->user['password'])) {
        User::$current = User::authenticate(Request::$params->user['name'], Request::$params->user['password']);
    }
    // vde(User::$current);
    if (User::$current) {
        # TODO:
        // if(User::$current->is_blocked && User::$current->ban && User::$current->ban->expires_at < gmd()) {
        // User::$current->update_attribute(array('level'->CONFIG["starting_level"]));
        // Ban::destroy_all("user_id = #{@current_user.id}")
        // }
    } else {
        User::$current = User::create_from_array($AnonymousUser);
    }
    // User::$current = new User('from_array', $AnonymousUser);
    // vde(User::$current);
}