get(); if (empty($request->user) || empty($request->password)) { throw new Rest_Exception(403, "Forbidden"); } $user = identity::lookup_user_by_name($request->user); if (empty($user)) { throw new Rest_Exception(403, "Forbidden"); } if (!identity::is_correct_password($user, $request->password)) { throw new Rest_Exception(403, "Forbidden"); } $key = ORM::factory("user_access_token") ->where("user_id", "=", $user->id) ->find(); if (!$key->loaded()) { $key->user_id = $user->id; $key->access_key = md5($user->name . rand()); $key->save(); } print rest::success(array("token" => $key->access_key)); } catch (Rest_Exception $e) { $e->sendHeaders(); } } public function __call($function, $args) { $request = rest::normalize_request($args); try { if (rest::set_active_user($request->access_token)) { $handler_class = "{$function}_rest"; $handler_method = $request->method; if (!method_exists($handler_class, $handler_method)) { throw new Rest_Exception(403, "Forbidden"); } print call_user_func(array($handler_class, $handler_method), $request); } } catch (Rest_Exception $e) { $e->sendHeaders(); } } }