/*
* New user registration
*/
+ public function register(){
+ $xml = $this->get_xml();
+ try {
+ $user = new User_Model($xml->login, $xml->password, $xml->email);
+ echo "OK";
+ }
+ catch (Exception $e) {
+ echo $e->getMessage() . "\n";
+ die;
+ }
+ }
+
+ /*
+ * Returns XML file supplied by client
+ */
+ private function get_xml(){
+ if (isset($_POST['xml'])){
+ $xml = simplexml_load_string($_POST['xml']);
+ }
+ elseif (isset($_FILES['xml'])){
+ $xml = simplexml_load_file($_FILES['xml']['tmp_name']);
+ }
+ else{
+ header("HTTP/1.1 400 Bad Request");
+ echo "Please supply required parameters";
+ die;
+ }
+ return $xml;
+ }
+
+ /*
+ * Check that supplied credentials are valid using basic authentication
+ *
+ */
+ public function login(){
+ if ($this->is_authorized()){
+ print "OK";
+ die;
+ }
+ else
+ $this->not_authorized();
+ }
+
+ /*
+ * Validate supplied credentials
+ */
+ public function is_authorized(){
+ if (isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])){
+ $user = new User_Model();
+ if ($user->login($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))
+ return true;
+ else
+ return false;
+ }
+ else
+ return false;
+
+ }
+
+ /*
+ * Display "You're not authorized error to client
+ *
+ * @todo Need to create function for generally displaying errors
+ */
+ public function not_authorized(){
+ header('HTTP/1.0 401 Unauthorized');
+ print "Invalid credentials or not registered";
+ die;
+ }
+
+ /*
+ * Get categories list and output it as XML
+ *
+ */
+ public function categories(){
+ if ($this->is_authorized()){
+ $xml = new View('api/categories');
+ $cat = new Category_Model();
+ $xml->categories=$cat->get_all();
+ $xml->render(true);
+ }
+ else
+ $this->not_authorized();
+ }
}
\ No newline at end of file