| Current Path : /home/balossw/www/temp/common/cms/includes/ |
| Current File : /home/balossw/www/temp/common/cms/includes/rights.inc.php |
<?php
/*---------------------------------------------------------------------------
File name ............ includes/rights.inc.php
Project .............. Owebia CMS
Author ............... Antoine Lemoine
Creation date ........ 31.01.2008
Modification date .... 10.09.2009
---------------------------------------------------------------------------*/
function parseRights($rights_str)
{
$output = array();
$array = explode(' ',$rights_str);
foreach ($array as $right)
{
if (preg_match('#^([+-])([a-zA-Z0-9_-]+|\*)(?::([a-zA-Z0-9_-]+|\*))?(?:/([a-zA-Z0-9_-]+|\*))?$#',$right,$result))
{
if (count($result)<5 && $result[count($result)-1]!='*') { $result[count($result)] = '*'; }
if (count($result)==5) { $output[$result[1]][$result[2]][$result[3]][$result[4]] = true; }
else if (count($result)==4) { $output[$result[1]][$result[2]][$result[3]] = true; }
else if (count($result)==3) { $output[$result[1]][$result[2]] = true; }
}
}
return $output;
}
function checkRight($param1, $param2='*', $param3='*')
{
global $global;
$data = &$global->data['cms'];
if (isset($data['user_rights']['-'][$param1][$param2][$param3])) return false;
else if (isset($data['user_rights']['+'][$param1][$param2][$param3])) return true;
else if (isset($data['user_rights']['-'][$param1][$param2]['*'])) return false;
else if (isset($data['user_rights']['+'][$param1][$param2]['*'])) return true;
else if (isset($data['user_rights']['-'][$param1]['*'])) return false;
else if (isset($data['user_rights']['+'][$param1]['*'])) return true;
else if (isset($data['user_rights']['-']['*'])) return false;
else if (isset($data['user_rights']['+']['*'])) return true;
else return false;
}
?>