Source for file checkuser.phpinc

Documentation is available at checkuser.phpinc

  1. <?php
  2. /**
  3.   * checkuser include
  4.   *
  5.   * usese $SEC_REQ settings to verify user rights and connect to database
  6.   * if $SEC_REQ['DBCONN'] is TRUE.
  7.   *
  8.   *
  9.   * @project    Open CSP-Management
  10.   * @package    user
  11.   *
  12.   * @author     Peter Krebs <pitlinz@users.sourceforge.net>
  13.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  14.   *
  15.   * @todo   $SEC_REQ['GROUPRIGHTS'] (media)
  16.   *
  17.   *  version pk-03-12-30 new user object
  18.   * @version pk-04-09-16 user object changed
  19.   * @version pk-04-09-28 do not overwrite existing USER Object
  20.   * @version pk-05-06-21 check of $_POST['LOGIN'] added
  21.   * @version pk-05-07-02
  22.   * @version pk-07-04-12
  23.   * @version pk-07-08-24
  24.   * @version pk-08-11-18 SEC_REQ['CONTENTTYPE'] added
  25.   *
  26.   * @version $Id: checkuser.phpinc,v 1.18 2008/11/19 07:40:08 pitlinz Exp $
  27.   * 
  28.   * @global OCSP_OBJ 
  29.   * 
  30.   * 
  31.   * 
  32.   * 
  33.   * 
  34.   */
  35.  
  36. /**
  37.   * ---------------------------------------------------
  38.   *
  39.   * common settings and requirements
  40.   *
  41.   */
  42.  
  43.     if (!function_exists('pcf_require_class'))
  44.     {
  45.         require_once __OCSP_PHPINCPATH__ "common" _OCSP_DIRSEP_ "pcf.phpinc";
  46.     }
  47.     pcf_require_class('OCSP_USER',"user/");
  48.     pcf_require_class('OCSP_SESSION',"common/");
  49.     
  50.     if (!isset($debug))
  51.     {
  52.         $debug=false;
  53.     }
  54.  
  55.     $SEC_REQ['PUBLIC']=(isset($SEC_REQ['PUBLIC']$SEC_REQ['PUBLIC'FALSE);
  56.     $SEC_REQ['DBCONN']=(isset($SEC_REQ['DBCONN']$SEC_REQ['DBCONN'FALSE);
  57.  
  58.     if ($debugechoDebugLine(__FILE__,__LINE__,"checkuser: <pre>".print_r($SEC_REQ,TRUE)."</pre>");
  59.  
  60.     
  61. /**
  62.   * ---------------------------------------------------
  63.   *
  64.   * common functions
  65.   *
  66.   */
  67.  
  68.  
  69. /**
  70.   * ---------------------------------------------------
  71.   *
  72.   * main functions
  73.   *
  74.   */
  75.  
  76.     global $OCSP_OBJ;
  77.     global $OCSP_CONF;
  78.     global $OCSP_VAL;
  79.  
  80.     if (!is_array($OCSP_OBJ)) $OCSP_OBJ=array();    
  81.     $OCSP_OBJ['SESSION'OCSP_SESSION::getInstance(true);
  82.     
  83.     if ((isset($_GET['LOGOUT'])) && (intval($_GET['LOGOUT']))) 
  84.     {
  85.         if (OCSP_OBJ::currentUser())
  86.         {
  87.             OCSP_SESSION::getInstance()->clearUser($debug);
  88.             OCSP_SESSION::getInstance()->closeSession();
  89.         }
  90.         
  91.         header("Location: /");
  92.         exit();                    
  93.     }
  94.  
  95. //    $debug=($_SERVER['HTTP_HOST']=="faktor60.w4c.at");echoDebugLine(__FILE__,__LINE__,"Debug ON <pre>" . print_r($_SERVER,True) . "</pre>");    
  96.     if (isset($_POST['LOGIN']&& is_array($_POST['LOGIN']&& !empty($_POST['LOGIN']['USR_LOGIN']))
  97.     {
  98.         // we have a login form submit -> check the user
  99.         $l=(isset($_POST['LOGIN']['USR_LOGIN']$_POST['LOGIN']['USR_LOGIN'"");
  100.         $p=(isset($_POST['LOGIN']['USR_PWD']$_POST['LOGIN']['USR_PWD'"");
  101.         
  102.         if (OCSP_USER::factoryCurrentFromLoginPasswd($l,$p,NULL,$debug))
  103.         {
  104.             OCSP_OBJ::currentUser()->touch(true,$debug);
  105.             OCSP_SESSION::getInstance(True)->unsetValue('LOGIN_POST');
  106.             OCSP_SESSION::getInstance(True)->unsetValue('LOGIN_FILE');
  107.             OCSP_SESSION::getInstance(True)->unsetValue('LOGIN_REFERER');
  108.         else {
  109.             //throw new Exception(_OCSP_EXCEP_LOGINFAILED_);
  110.             if ($debugechoDebugLine(__FILE__,__LINE__,"Login failed");            
  111.         }    
  112.         OCSP_SESSION::getInstance(True)->unsetValue('LOGIN');        
  113.     else if (OCSP_OBJ::currentUser()->isPublic()) {
  114.  
  115.     }
  116.             
  117.     if (isset($_GET['LOGIN']&& !empty($_GET['LOGIN']))
  118.     {
  119.         $SEC_REQ['PUBLIC']=False;
  120.     }
  121.     
  122.     
  123.     if ((!$SEC_REQ['PUBLIC']&& OCSP_OBJ::currentUser()->isPublic($debug))
  124.     {
  125.         do {
  126.             if (isset($_SERVER['PHP_AUTH_USER']&& !empty($_SERVER['PHP_AUTH_USER']))
  127.             {
  128.                 if (OCSP_USER::factoryCurrentFromLoginPasswd($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW'],NULL,$debug))
  129.                 {
  130.                     OCSP_OBJ::currentUser()->touch(true,$debug);
  131.                     OCSP_SESSION::getInstance(True)->unsetValue('LOGIN_POST');
  132.                     OCSP_SESSION::getInstance()->unsetValue('LOGIN_FILE');
  133.                     OCSP_SESSION::getInstance()->unsetValue('LOGIN_REFERER');
  134.                     break;
  135.                 }
  136.             }
  137.             OCSP_USER::echoLoginForm($SEC_REQ);
  138.             exit();                        
  139.         while(False);
  140.     }
  141.  
  142.     if (!OCSP_OBJ::currentUser(True)->isValid())
  143.     {
  144.         throw new Exception(_OCSP_EXCEP_NOUSER_ ": User is not valid");
  145.     }    
  146.     
  147.     if (!OCSP_OBJ::currentUser()->isEnabled())
  148.     {
  149.         throw new Exception(_OCSP_EXCEP_NOUSER_ ": User is disabled");    
  150.     }
  151.  
  152.     OCSP_OBJ::currentUser()->setSecRequireArr($SEC_REQ);
  153.     if (!OCSP_OBJ::currentUser()->isAllowed(NULL,$debug))
  154.     {
  155.         throw new Exception(_OCSP_EXCEP_NOTALLOWD_ ":" print_r($SEC_REQ,true));
  156.     }
  157.             
  158.     OCSP_OBJ::currentUser()->sessSave($debug);
  159.     
  160.     // old style global vars 
  161.     $GLOBALS['USER']=OCSP_OBJ::currentUser();
  162.     $GLOBALS['OCSP_OBJ']['USER']=&$OCSP_OBJ['USER'];
  163.     
  164.     
  165.     /**
  166.       * ----------------------------- DB CONNECTION --------------------------------
  167.       */
  168.     
  169.     if ($SEC_REQ['DBCONN'])
  170.     {
  171.         if (!OCSP_OBJ::currentUser()->isConnected(true))
  172.         {
  173.             throw new Execption(_OCSP_EXCEP_NODBCONN_);
  174.         }
  175.         
  176.         // old style global vars 
  177.         $GLOBALS['USRDB']=OCSP_OBJ::defaultDBObj();
  178.         $GLOBALS['OCSP_OBJ']['USRDB']=&$OCSP_OBJ['USRDB'];        
  179.     }
  180.  
  181.     
  182.     OCSP_SESSION::getInstance(true)->unsetValue('LOGINERROR');
  183.     if ($debugechoDebugLine(__FILE__,__LINE__,"<p>checkuser done</p><pre>".print_r($_SESSION,TRUE)."</pre>");
  184.  
  185. ?>

Documentation generated on Thu, 08 Jan 2009 17:37:37 +0100 by phpDocumentor 1.4.0a2