b2evolution

Multilingual multiuser multiblog engine

b2evolution Technical Documentation (0.9.x) [ class tree: evocore ] [ index: evocore ] [ all elements ]

Source for file _class_group.php

Documentation is available at _class_group.php

  1. <?php
  2. /**
  3.  * This file implements User Groups
  4.  *
  5.  * b2evolution - {@link http://b2evolution.net/}
  6.  * Released under GNU GPL License - {@link http://b2evolution.net/about/license.html}
  7.  * @copyright (c)2003-2005 by Francois PLANQUE - {@link http://fplanque.net/}
  8.  *
  9.  * @package evocore
  10.  */
  11. if!defined('DB_USER') ) die'Please, do not access this page directly.' );
  12.  
  13. /**
  14.  * Includes:
  15.  */
  16. require_once dirname(__FILE__).'/_class_dataobject.php';
  17.  
  18. /**
  19.  * User Group
  20.  *
  21.  * Group of users with specific permissions.
  22.  *
  23.  * @package evocore
  24.  */
  25. class Group extends DataObject
  26. {
  27.     /**
  28.      * Name of group
  29.      *
  30.      * Please use get/set functions to read or write this param
  31.      *
  32.      * @var string 
  33.      * @access protected
  34.      */
  35.     var    $name;
  36.     /**
  37.      * Permissions for stats
  38.      *
  39.      * Possible values: none, view, edit
  40.      *
  41.      * Please use get/set functions to read or write this param
  42.      *
  43.      * @var string 
  44.      * @access protected
  45.      */
  46.     var    $perm_stats;
  47.     var    $perm_blogs;
  48.     var    $perm_spamblacklist;
  49.     var    $perm_options;
  50.     var    $perm_templates;
  51.     var    $perm_users;
  52.  
  53.     /** 
  54.      * Constructor
  55.      *
  56.      * {@internal Group::Group(-) }}
  57.      *
  58.      * @param object DB row
  59.      */
  60.     function Group$db_row NULL )
  61.     {
  62.         global $tablegroups;
  63.         
  64.         // Call parent constructor:
  65.         parent::DataObject$tablegroups'grp_''grp_ID' );
  66.     
  67.         if$db_row == NULL )
  68.         {
  69.             // echo 'Creating blank group';
  70.             $this->name = T_('New group');
  71.             $this->perm_blogs = 'user';
  72.             $this->perm_stats = 'none';
  73.             $this->perm_spamblacklist = 'none';
  74.             $this->perm_options = 'none';
  75.             $this->perm_templates = 0;
  76.             $this->perm_users = 'none';
  77.         }
  78.         else
  79.         {
  80.             // echo 'Instanciating existing group';
  81.             $this->ID = $db_row->grp_ID;
  82.             $this->name = $db_row->grp_name;
  83.             $this->perm_blogs = $db_row->grp_perm_blogs;
  84.             $this->perm_stats = $db_row->grp_perm_stats;
  85.             $this->perm_spamblacklist = $db_row->grp_perm_spamblacklist;
  86.             $this->perm_options = $db_row->grp_perm_options;
  87.             $this->perm_templates = $db_row->grp_perm_templates;
  88.             $this->perm_users = $db_row->grp_perm_users;
  89.         }
  90.     }    
  91.     
  92.     /** 
  93.      * Set param value
  94.      *
  95.      * {@internal Group::set(-) }}
  96.      *
  97.      * @param string Parameter name
  98.      * @return mixed Parameter value
  99.      */
  100.     function set$parname$parvalue )
  101.     {
  102.         switch$parname )
  103.         {
  104.             case 'perm_templates':
  105.                 parent::set_param$parname'number'$parvalue );
  106.             break;
  107.             
  108.             default:
  109.                 parent::set_param$parname'string'$parvalue );
  110.         }
  111.     }
  112.  
  113.     /** 
  114.      * Check a permission for this group
  115.      *
  116.      * {@internal Group::check_perm(-) }}
  117.      *
  118.      * @param string Permission name:
  119.      *                                     - templates
  120.      *                                     - stats
  121.      *                                     - spamblacklist
  122.      *                                     - options
  123.      *                                     - users
  124.      *                                     - blogs
  125.      * @param string Permission level
  126.      * @return strind Permission value
  127.      */
  128.     function check_perm$permname$permlevel )
  129.     {
  130.         eval'$permvalue = $this->perm_'.$permname.';' );
  131.         // echo $permvalue;
  132.  
  133.         switch$permname )
  134.         {
  135.             case 'templates':
  136.                 if$permvalue )
  137.                     return true;    // Permission granted
  138.                 break;
  139.                 
  140.             case 'blogs':
  141.                 switch$permvalue )
  142.                 {
  143.                     case 'editall':
  144.                         // All permissions granted
  145.                         return true;    // Permission granted
  146.                         
  147.                     case 'viewall':
  148.                         // User can only ask for view perm
  149.                         if(( $permlevel == 'view' || $permlevel == 'any' ))
  150.                             return true;    // Permission granted
  151.                         break;    
  152.                 }
  153.  
  154.             case 'stats':
  155.             case 'spamblacklist':
  156.             case 'options':
  157.             case 'users':
  158.                 switch$permvalue )
  159.                 {
  160.                     case 'edit':
  161.                         // All permissions granted
  162.                         return true;    // Permission granted
  163.                         
  164.                     case 'view':
  165.                         // User can only ask for view perm
  166.                         if$permlevel == 'view' )
  167.                             return true;    // Permission granted
  168.                         break;    
  169.                 }
  170.         }        
  171.  
  172.         return false;    // Permission denied!
  173.     }
  174.     
  175. }
  176. ?>

Documentation generated on Tue, 20 May 2008 01:53:00 +0200 by phpDocumentor 1.4.2