Source for file Active_User.php

Documentation is available at Active_User.php

  1. <?php
  2. /**
  3.  *    LAIKA FRAMEWORK Release Notes:
  4.  *
  5.  *    @filesource     Active_User.php
  6.  *
  7.  *    @version        0.1.0b
  8.  *    @package        Laika
  9.  *    @subpackage     module
  10.  *    @category       model
  11.  *    @date           2012-05-18 22:05:37 -0400 (Fri, 18 May 2012)
  12.  *
  13.  *    @author         Leonard M. Witzel <witzel@post.harvard.edu>
  14.  *    @copyright      Copyright (c) 2012  Laika Soft <{@link http://oafbot.com}>
  15.  *
  16.  */
  17. /**
  18.  * Laika_Active_User class.
  19.  *
  20.  * Class representing the user currently logged in.
  21.  * A Singleton representation of the User Model Class.
  22.  * 
  23.  * @extends Laika_Abstract_Singleton_Model
  24.  */
  25.  
  26. //-------------------------------------------------------------------
  27. //    PROPERTIES
  28. //-------------------------------------------------------------------
  29.  
  30.     protected static $instance;
  31.     protected        $model;
  32.     protected        $table;
  33.     protected        $accessibles = array('username','email','firstname','lastname','logged_in');
  34.         
  35.     protected        $id;
  36.     protected        $username;
  37.     protected        $password;
  38.     protected        $salt;
  39.     protected        $email;
  40.     protected        $level;
  41.     protected        $firstname;
  42.     protected        $lastname;
  43.     protected        $logged_in;
  44.  
  45.     protected        $created;
  46.     protected        $updated;
  47.     
  48. //-------------------------------------------------------------------
  49. //    METHODS
  50. //-------------------------------------------------------------------
  51.  
  52.     /**
  53.      * init function.
  54.      * 
  55.      * @access public
  56.      * @static
  57.      * @return object 
  58.      */
  59.     public static function init(){       
  60.         parent::init();
  61.         self::$instance->model 'Active_User';
  62.         self::$instance->table 'users';
  63.         return self::$instance;    
  64.     }
  65.  
  66.     /**
  67.      * bind function.
  68.      * 
  69.      * @access public
  70.      * @static
  71.      * @param int $id 
  72.      * @return void 
  73.      */
  74.     public static function bind($id){
  75.         Laika_Active_Session::unregister($id,false);
  76.         $user self::load($id);
  77.         Laika_Registry::register('Active_User',$user);
  78.         Laika_Active_Session::register($id);
  79.     }
  80.  
  81.     /**
  82.      * active function.
  83.      * 
  84.      * @access public
  85.      * @static
  86.      * @return Active_User Object
  87.      */
  88.     public static function active(){
  89.         if(Laika_Registry::peek('Active_User'))
  90.             self::$instance Laika_Registry::get_record('Active_User');            
  91.         elseifisset($_SESSION['PREVIOUS_TOKEN']) ) 
  92.             self::$instance self::wake_up();
  93.         else self::init();
  94.         
  95.         return self::$instance;            
  96.     }
  97.     
  98.     /**
  99.      * wake_up function.
  100.      * 
  101.      * @access public
  102.      * @static
  103.      * @return Active_User Object
  104.      */
  105.     public static function wake_up(){
  106.         $id Laika_Active_Session::find_user($_SESSION['PREVIOUS_TOKEN']);
  107.         self::bind($id);
  108.         return Laika_Registry::get_record('Active_User');
  109.     }
  110.     
  111.     /**
  112.      * sleep function.
  113.      * 
  114.      * @access public
  115.      * @static
  116.      * @return void 
  117.      */
  118.     public static function sleep(){
  119.         $user self::active();
  120.         $id $user::get('id');
  121.         Laika_Active_Session::unregister($id,true);    
  122.     }
  123.     
  124.     public static function deactivate(){}
  125.     
  126.     /**
  127.      * name function.
  128.      * 
  129.      * @access public
  130.      * @return string 
  131.      */
  132.     public function name(){
  133.         if(func_num_args()==0)
  134.             $user self::init();
  135.         else
  136.             $user self::load(func_get_arg(0));
  137.         return $user->firstname." ".$user->lastname;
  138.     }
  139.     
  140.     /**
  141.      * activated function.
  142.      * 
  143.      * @access public
  144.      * @return void 
  145.      */
  146.     public static function valid_account(){
  147.         $account Laika_Account::find('user',self::init()->id);
  148.         if(!$account->confirmed(|| $account->deactivated())
  149.             return false;
  150.         return true;
  151.     }
  152.     
  153.     /**
  154.      * account function.
  155.      * 
  156.      * @access public
  157.      * @return void 
  158.      */
  159.     public function account(){
  160.         return Laika_Account::find('user',self::init()->id);
  161.     }
  162.     
  163.     /**
  164.      * logged_in function.
  165.      * 
  166.      * @access public
  167.      * @return void 
  168.      */
  169.     public function logged_in(){        
  170.         if(func_num_args()>0)          
  171.             return $this->dset('logged_in'func_get_arg(0));
  172.         return $this->dset('logged_in'true);
  173.     }   
  174.  
  175.     /**
  176.      * avatar function.
  177.      * 
  178.      * @access public
  179.      * @param mixed $size 
  180.      * @return void 
  181.      */
  182.     public function avatar($size){
  183.         $link '<a href="'.HTTP_ROOT.'/user/'.$this->username.'" >';
  184.         return $link.Laika_Avatar::img(self::init()->email,$size).'</a>';
  185.     }                            
  186. }

Documentation generated on Sat, 19 May 2012 02:16:56 -0400 by phpDocumentor 1.4.4