Source for file BorealisACL.php

Documentation is available at BorealisACL.php

  1. <?php
  2. /**
  3. * ACL (Access Control List - liste de contrôle d'accès) qui utilise la library acl de borealis
  4. *
  5. * PHP versions 5
  6. @category  PHP
  7. @package   GeoPrisma
  8. @author    Pascal Martin
  9. @copyright 2009, Boreal - Information Strategies
  10. @license   http://www.geoprisma.org/license BSD License
  11. @link      http://www.geoprisma.org
  12. */
  13.  
  14. /**
  15. * ACL (Access Control List - liste de contrôle d'accès) qui utilise la library acl de borealis
  16. @category   PHP
  17. @package    GeoPrisma
  18. @subpackage ACL
  19. @author     Pascal Martin
  20. */ 
  21. {
  22.     private static $s_objInstance null;
  23.     private static $s_strUsername 'anonymous'
  24.     private static $s_bCaching     false;
  25.     
  26.     /**
  27.     * Construit un instance de org_geoprisma_acl_BorealisACL
  28.     * 
  29.     * @return org_geoprisma_acl_BorealisACL 
  30.     */
  31.     private function __construct()
  32.     {
  33.         // Constructeur privé pour forcer l'utilisation de getInstance (Singleton DP)
  34.     }
  35.     
  36.     /**
  37.     * Retourne un instance de org_geoprisma_acl_BorealisACL
  38.     * Singleton DP
  39.     * 
  40.     * @return org_geoprisma_acl_BorealisACL 
  41.     */
  42.     public static function getInstance()
  43.     {
  44.         if (is_null(self::$s_objInstance)) 
  45.         {
  46.             self::$s_objInstance new org_geoprisma_acl_BorealisACL();
  47.         }
  48.         return self::$s_objInstance;
  49.     }
  50.     
  51.     /**
  52.     * Indique si nous somme autoriser a accéder à l'action de la ressource spécifier
  53.     * 
  54.     * @param org_geoprisma_resource_Resource $pobjResource Resource object
  55.     * @param string                          $pstrAction   Nom de l'action
  56.     * 
  57.     * @return boolean 
  58.     */
  59.     public function isAuthorized($pobjResource$pstrAction)
  60.     {
  61.         $strResourceName null;
  62.  
  63.         if ($pobjResource->getACLName(== ""
  64.         {
  65.             $strResourceName $pobjResource->getName();
  66.         }
  67.         else
  68.         {
  69.             $strResourceName $pobjResource->getACLName();
  70.         }
  71.  
  72.         if (self::$s_bCaching == true
  73.         {
  74.             if (!isset($_SESSION["gpAuthorized"])) 
  75.             {
  76.                 $_SESSION["gpAuthorized"array();
  77.             }
  78.  
  79.             if (!isset($_SESSION["gpAuthorized"][$strResourceName])) 
  80.             {
  81.                 $_SESSION["gpAuthorized"][$strResourceNamearray();
  82.             }
  83.  
  84.             if (!isset($_SESSION["gpAuthorized"][$strResourceName][$pstrAction])) 
  85.             {
  86.                 $objAclResource com_borealis_acl_object_Ressource::getByName($strResourceName);
  87.                 $objAclAction com_borealis_acl_object_Action::getByName($pstrAction);
  88.  
  89.                 $_SESSION["gpAuthorized"][$strResourceName][$pstrAction($objAclResource !== null && $objAclAction !== null && com_borealis_acl_manager_ACLManager::isAuthorized(self::getUsername()$objAclResource$objAclAction));  
  90.             }
  91.  
  92.             return $_SESSION["gpAuthorized"][$strResourceName][$pstrAction];
  93.         }
  94.         else
  95.         {
  96.             $objAclResource com_borealis_acl_object_Ressource::getByName($strResourceName);
  97.             $objAclAction com_borealis_acl_object_Action::getByName($pstrAction);
  98.  
  99.             return ($objAclResource !== null && $objAclAction !== null && com_borealis_acl_manager_ACLManager::isAuthorized(self::getUsername()$objAclResource$objAclAction));  
  100.         }
  101.     }
  102.     
  103.     /**
  104.     * Set le username du user présentement connecter
  105.     * 
  106.     * @param string $pstrUsername Nom d'utilisateur
  107.     * 
  108.     * @return void 
  109.     */
  110.     public static function setUsername($pstrUsername)
  111.     {
  112.         self::$s_strUsername $pstrUsername;
  113.     }
  114.     
  115.     /**
  116.     * Retourne le username du user présentement connecter
  117.     *
  118.     * @return string 
  119.     */
  120.     public static function getUsername()
  121.     {
  122.         return self::$s_strUsername;
  123.     }
  124.  
  125.     /**
  126.     * Permet de mettre en memoire (Session)
  127.     * la matrice de l'ACL.
  128.     * 
  129.     * @param boolean $pbCaching Enabled Caching
  130.     * 
  131.     * @return void 
  132.     */
  133.     public static function setCaching($pbCaching)
  134.     {
  135.         self::$s_bCaching $pbCaching;
  136.     }
  137.     
  138.     /**
  139.     * Retourne le mode de caching
  140.     *
  141.     * @return boolean 
  142.     */
  143.     public static function isCached()
  144.     {
  145.         return self::$s_bCaching;
  146.     }
  147. }
  148.   
  149. ?>

Documentation generated on Mon, 20 Feb 2012 13:46:08 -0500 by phpDocumentor 1.4.1