where("access_key", "=", $access_token) ->find(); if (!$key->loaded()) { throw new Rest_Exception("Forbidden", 403); } $user = identity::lookup_user($key->user_id); if (empty($user)) { throw new Rest_Exception("Forbidden", 403); } identity::set_active_user($user); } static function send_headers($exception) { header("HTTP/1.1 " . $exception->getCode() . " " . $exception->getMessage()); } /** * Convert a REST url into an object. * Eg: "http://example.com/gallery3/index.php/rest/gallery/Family/Wedding" -> Item_Model * * @param string the fully qualified REST url * @return mixed the corresponding object (usually a model of some kind) */ static function resolve($url) { $relative_url = substr($url, strlen(url::abs_site("rest"))); $path = parse_url($relative_url, PHP_URL_PATH); $components = explode("/", $path, 3); $class = "$components[1]_rest"; if (!method_exists($class, "resolve")) { throw new Kohana_404_Exception($url); } return call_user_func(array($class, "resolve"), !empty($components[2]) ? $components[2] : null); } }