| 
<?php
 /**
 * Rest object example
 *
 * GNU General Public License (Version 2, June 1991)
 *
 * This program is free software; you can redistribute
 * it and/or modify it under the terms of the GNU
 * General Public License as published by the Free
 * Software Foundation; either version 2 of the License,
 * or (at your option) any later version.
 *
 * This program is distributed in the hope that it will
 * be useful, but WITHOUT ANY WARRANTY; without even the
 * implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE. See the GNU General Public License
 * for more details.
 *
 * @author RafaĆ Przetakowski <rafal.p@beeflow.co.uk>
 */
 class User extends restObject {
 
 /**
 * user data
 */
 public $id;
 public $name;
 public $lastName;
 public $login;
 
 /**
 *
 * @param string $method
 * @param array $request
 * @param string $file
 */
 public function __construct($method, $request = null, $file = null) {
 parent::__construct($method, $request, $file);
 }
 
 /**
 * Login example
 * @return array
 */
 public function login() {
 if (!$this->isMethodCorrect('POST')) {
 return $this->getResponse();
 }
 
 if (isset($_SESSION['auth_id'])) {
 $this->setError( "User already logged" );
 return $this->getResponse();
 }
 
 if (isset($_SERVER['PHP_AUTH_PW']) && isset($_SERVER['PHP_AUTH_USER'])) {
 $login = $_SERVER['PHP_AUTH_USER'];
 $password = $_SERVER['PHP_AUTH_PW'];
 } else if (isset($this->request['login']) && $this->request['password']) {
 $login = $this->request['login'];
 $password = $this->request['password'];
 } else {
 $this->setError('There is no username info');
 return $this->getResponse();
 }
 
 $userData = $this->getMyVars();
 $this->respponse = array("logu" => $_SESSION['auth_id'], 'Cookie' => 'PHPSESSID='.  session_id(), 'user' => $userData);
 return $this->getResponse();
 }
 
 /**
 * Example of an Endpoint
 * @return array
 */
 public function example() {
 $this->id = 1111;
 $this->name = 'John';
 $this->lastName = 'Doe';
 $this->login = 'Test';
 
 $this->respponse = $this->getMyVars();
 return $this->getResponse();
 }
 
 /**
 *
 * @param integer $id
 * @return array
 */
 public function get($id) {
 $logged = $this->haveToBeLogged();
 if (true !== $logged) {
 return $logged;
 }
 
 if (!$this->isMethodCorrect('GET')) {
 return $this->getResponse(405);
 }
 
 $this->setIdFromRequest($id);
 $this->respponse = $this->getMyVars();
 return $this->getResponse();
 }
 
 /**
 *
 * @return array
 */
 public function logout() {
 $_SESSION['auth_id'] = null;
 $this->respponse = array("logout" => "true");
 return $this->getResponse();
 }
 
 private function setIdFromRequest($id) {
 if (is_array($id)) {
 $this->id = $id[0];
 } else {
 $this->id = $id;
 }
 }
 }
 
 |