Skip to content
Snippets Groups Projects
Select Git revision
  • shib-cas
  • master default
2 results

User.php

Blame
  • User.php 2.64 KiB
    <?php
    /**
     * NMC User
     *
     * LICENSE: Some license information
     *
     * @copyright  2006 New Media Center - University of Nebraska-Lincoln
     * @license    http://www.gnu.org/licenses/gpl.txt GPL
     * @version    0.0.1
     * @link       http://nmc.unl.edu/
     * @since      File available since Release 0.0.1
    */
    
    require_once 'Nmc/Model/UserInterface.php';
    
    /**
     * Nmc_User - General user class, use to get info about current user
     *
     * @copyright  2006 New Media Center - University of Nebraska Lincoln
     * @license    http://www.gnu.org/gpl.txt GPL
     * @version    Release: 0.0.1
     * @link       http://nmc.unl.edu/
     * @since      Class available since Release 0.0.1
     */
    
    class Nmc_User {
    
        /**
         * the single instance of this class
         *
         * @var Nmc_User
         */
        static protected $_instance;
    
        /**
         * whether a user is logged in or not
         *
         * @var bool
         */
        protected $_loggedIn = false;
    
        /**
         * The currently logged in user
         *
         * @var Nmc_Model_UserInterface
         */
        protected $_user;
    
        /**
         * Stores the primary key of the user for session survival
         *
         * @var mixed
         */
        protected $_userId;
    
        /**
         * Stores the class type of the user for session survival
         *
         * @var string
         */
        protected $_userModel;
    
        protected function __construct()
        {
            $user = Nmc_Registry_Session::getInstance('Nmc_User')->user;
            if($user) {
                $this->login($user);
            }
        }
    
        /**
         * Returns the single instance of this class
         *
         * @return Nmc_User
         */
        static public function getInstance()
        {
            if(!self::$_instance) {
                self::$_instance = new Nmc_User();
            }
            return self::$_instance;
        }
    
        /**
         * Register a user object as the current logged in user
         *
         * @param Nmc_Model_UserInterface $user
         * @return void
         */
    	public function login(Nmc_Model_UserInterface $user)
    	{
    	    $this->_user = $user;
    	    Nmc_Registry_Session::getInstance('Nmc_User')->user = $user;
    	    $this->_loggedIn = true;
    	}
    
    	/**
    	 * Log out the current user
    	 *
    	 * @return void
    	 */
    	public function logout()
    	{
    	    unset($this->_user);
    	    Nmc_Registry_Session::getInstance('Nmc_User')->erase('user');
    	    Nmc_Registry_Session::getInstance()->destroy();
    	    $this->_loggedIn = false;
    	}
    
    	/**
    	 * Returns true if a user is registered as logged in.
    	 *
    	 * @return bool
    	 */
    	public function isLoggedIn() {
    	    return $this->_loggedIn;
    	}
    
    	/**
    	 * Returns the currently logged in user
    	 * Note: may return null if no user logged in
    	 *
    	 * @return Nmc_Model_UserInterface
    	 */
    	public function getUser() {
    	    return $this->_user;
    	}
    }
    
    ?>