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; } }