<?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; 
        } 
    } 
} 
 
 |