commitall
This commit is contained in:
99
account/application/helpers/permission_helper.php
Normal file
99
account/application/helpers/permission_helper.php
Normal file
@ -0,0 +1,99 @@
|
||||
<?php
|
||||
function isSuperAdmin()
|
||||
{
|
||||
$ci =& get_instance();
|
||||
if ($ci->session->has_userdata('superAdmin')) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function isPermitted($value, $level = 0)
|
||||
{
|
||||
$ci =& get_instance();
|
||||
if (isSuperAdmin()) {
|
||||
return true;
|
||||
} else {
|
||||
//echo $level;die;
|
||||
$privilege = $ci->session->userdata('privilege');
|
||||
if (!empty($privilege[$value]) && ($privilege[$value] > $level || $privilege[$value] == $level)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getPrivilege($value)
|
||||
{
|
||||
$ci =& get_instance();
|
||||
$privilege = $ci->session->userdata('privilege');
|
||||
if (!empty($privilege[$value])) {
|
||||
return $privilege[$value];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function isViewable($level = 0)
|
||||
{
|
||||
$urlArray = getUrlArray();
|
||||
if (!empty($urlArray[1]) && $level == 0) {
|
||||
$level = getLevel($urlArray[1]);
|
||||
}
|
||||
else if (!is_numeric($level)){
|
||||
$level = getLevel($level);
|
||||
}
|
||||
|
||||
if (isSuperAdmin()) {
|
||||
return true;
|
||||
} elseif (isPermitted($urlArray[0], $level)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function isViewPermitted($level = '')
|
||||
{
|
||||
$urlArray = getUrlArray();
|
||||
|
||||
//pre($urlArray,1);
|
||||
if (!empty($urlArray[1]) && $level == '') {
|
||||
$level = $urlArray[1];
|
||||
}
|
||||
$level = getLevel($level);
|
||||
if (isViewable($level)) {
|
||||
return true;
|
||||
} else {
|
||||
show_404();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getLevel($val)
|
||||
{
|
||||
switch ($val) {
|
||||
case 'view':
|
||||
return 1;
|
||||
break;
|
||||
case '':
|
||||
return 1;
|
||||
break;
|
||||
case 'add':
|
||||
return 2;
|
||||
break;
|
||||
case 'edit':
|
||||
return 2;
|
||||
break;
|
||||
case 'update':
|
||||
return 2;
|
||||
break;
|
||||
case 'delete':
|
||||
return 3;
|
||||
break;
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user