Source for file class.auth.php

Documentation is available at class.auth.php

  1. <?php
  2. /**
  3. @package    jelix
  4. @subpackage auth_driver
  5. @author      Laurent Jouanneau
  6. @contributor Yannick Le Guédart (adaptation de jAuthDriverDb pour une classe quelconque)
  7. @copyright   2006-2007 Laurent Jouanneau, 2006 Yannick Le Guédart
  8. @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
  9. */
  10.  
  11.  
  12. /**
  13.  * interface for classes used with the jAuthDriverClass
  14. @package    jelix
  15. @subpackage auth_driver
  16. @see jAuth
  17. @since 1.0b2
  18.  */
  19. interface jIAuthDriverClass {
  20.     /**
  21.     * save a new user
  22.     * @param object $user user informations
  23.     */
  24.     public function insert($user);
  25.  
  26.     /**
  27.     * delete a user
  28.     * @param string $login login of the user to delete
  29.     */
  30.     public function deleteByLogin($login);
  31.  
  32.     /**
  33.     * update user informations
  34.     * @param object $user user informations
  35.     */
  36.     public function update($user);
  37.  
  38.     /**
  39.     * get user informations
  40.     * @param string $login login of the user on which we want to get informations
  41.     * @return object user informations
  42.     */
  43.     public function getByLogin($login);
  44.  
  45.     /**
  46.     * create an empty object which will contains user informations
  47.     * @return object user informations (empty)
  48.     */
  49.     public function createUserObject();
  50.  
  51.     /**
  52.     * gets all users
  53.     * @return array list of users
  54.     */
  55.     public function findAll();
  56.  
  57.     /**
  58.     * gets all users for which the login corresponds to the given pattern
  59.     * @param string $pattern the pattern
  60.     * @return array list of users
  61.     */
  62.     public function findByLoginPattern($pattern);
  63.  
  64.     /**
  65.     * change the password of a user
  66.     * @param string $login the user login
  67.     * @param string $password the new encrypted password
  68.     */
  69.     public function updatePassword($login$cryptedpassword);
  70.  
  71.     /**
  72.     * get the user corresponding to the given login and encrypted password
  73.     * @param string $login the user login
  74.     * @param string $password the new encrypted password
  75.     * @return object user informations
  76.     */
  77.     public function getByLoginPassword($login$cryptedpassword);
  78. }
  79.  
  80.  
  81.  
  82.  
  83. /**
  84. * Driver for a class which implement an authentification
  85. @package    jelix
  86. @subpackage auth_driver
  87. @see jAuth
  88. @since 1.0a5
  89. */
  90. class classAuthDriver implements jIAuthDriver {
  91.  
  92.     protected $_params;
  93.  
  94.     function __construct($params){
  95.         $this->_params = $params;
  96.     }
  97.  
  98.     public function saveNewUser($user){
  99.         $class jClasses::create($this->_params['class']);
  100.         $class->insert($user);
  101.         return true;
  102.     }
  103.  
  104.     public function removeUser($login){
  105.         $class jClasses::create($this->_params['class']);
  106.         $class->deleteByLogin($login);
  107.         return true;
  108.     }
  109.  
  110.     public function updateUser($user){
  111.         $class jClasses::create($this->_params['class']);
  112.         $class->update($user);
  113.         return true;
  114.     }
  115.  
  116.     public function getUser($login){
  117.         $class jClasses::create($this->_params['class']);
  118.         return $class->getByLogin($login);
  119.     }
  120.  
  121.     public function createUserObject($login,$password){
  122.         $class jClasses::create($this->_params['class']);
  123.         $user $class->createUserObject();
  124.         $user->login $login;
  125.         $user->password $this->cryptPassword($password);
  126.         return $user;
  127.     }
  128.  
  129.     public function getUserList($pattern){
  130.         $class jClasses::create($this->_params['class']);
  131.         if($pattern == '%' || $pattern == ''){
  132.             return $class->findAll();
  133.         }else{
  134.             return $class->findByLoginPattern($pattern);
  135.         }
  136.     }
  137.  
  138.     public function changePassword($login$newpassword){
  139.         $class jClasses::create($this->_params['class']);
  140.         return $class->updatePassword($login$this->cryptPassword($newpassword));
  141.     }
  142.  
  143.     public function verifyPassword($login$password){
  144.         $classuser jClasses::create($this->_params['class']);
  145.  
  146.         $user $classuser->getByLoginPassword($login$this->cryptPassword($password));
  147.  
  148.         return ($user?$user:false);
  149.     }
  150.  
  151.     protected function cryptPassword($password){
  152.         if(isset($this->_params['password_crypt_function'])){
  153.             $f=$this->_params['password_crypt_function'];
  154.             if$f != '')
  155.                $password $f($password);
  156.         }
  157.         return $password;
  158.     }
  159. }
  160. ?>

Documentation generated on Wed, 07 Sep 2011 13:46:29 +0200 by phpDocumentor 1.4.3