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