server_path = $url; } //------------- Public API --------------- public function is_logged_in() { return ! ($this->user_info() == NULL); } public function user_info() { if ($this->rails_cookie_value() == NULL) return NULL; $json_data = $this->api_request("user/" . $this->rails_cookie_value()); return $json_data->{'user'}; } public function login_url() { return $this->config_info()->{'login_url'}; } public function logout_url() { return $this->config_info()->{'logout_url'}; } //------------- Private methods ------------- function rails_cookie_value() { return $_COOKIE[$this->rails_cookie_name()]; } function rails_cookie_name() { return $this->config_info()->{'cookie_name'}; } function config_info() { if (! $this->cached_config_info) $this->cached_config_info = $this->api_request("config_info"); return $this->cached_config_info; } function api_request($query) { $r =& new HTTP_Request($this->server_path . $query); $r->sendRequest(); return json_decode($r->getResponseBody()); } } ?>