【发布时间】:2018-12-14 08:56:18
【问题描述】:
我的简单库中有一个函数,并在一些控制器上调用了
$activeUrl = str_replace(base_url(),"",current_url());
erporate_acl::has_permission($activeUrl);
然后这是我的库代码,这里的代码尝试匹配数据库中的当前 URI ($param) 数据:
public static function has_permission($param){
$CI =& get_instance();
$CI->load->model('acl_model');
$user = $CI->session->userdata('user');
$arrPerms = $CI->acl_model->permissions($user);
$currentMeth = strtolower(str_replace("::", "/", $param));
$result = "";
if (!empty($arrPerms))
{
if (strpos($currentMeth,'edit') !== false || strpos($currentMeth,'view') !== false || strpos($currentMeth,'delete') !== false) {
$str = preg_replace('#\/[^/]*$#', '', $currentMeth);
$result = in_array($str, $arrPerms);
}else{
$result = in_array($currentMeth, $arrPerms);
}
}else{
$result = false;
}
if ($result == false) {
show_error("<font size='+1'>Sorry, You Don't Allowed to Access !</font><br><a href='".@$_SERVER['HTTP_REFERER']."'>Back to Previous Page</a>");
}
}
我上面脚本的要点是匹配in_array if in_array return false 然后我们得到错误消息,否则允许访问页面
是否可以在不检查 URI 段的情况下创建权限?
谢谢你,对不起我的英语不好
【问题讨论】:
-
你到底想在这里实现什么?说清楚
标签: php mysql codeigniter permissions