在我的用户组中,我设置了可以检查或取消选中每个控制器名称的位置,然后单击“提交”并将名称发送到数据库。以文本/数组格式。如果尝试访问未经检查的控制器,那么我可以访问的那些控制器应该重定向到'admin/error_permission'
每个用户在用户ID旁边也有用户组ID。
我如何从数据库中获取控制器的名称,然后将它们重定向到我的错误页面
表名: user_group:columns:user_group_id,name,permission
存储控制器名称的列的名称是权限
和控制器名称的存储方式类似于权限 a:2:{s:6:"access";a:1:{i:0;s:11:"column_left";}s:6:"modify";a:1:{i:0;s:11:"column_left";}}
如何在数组中编写每个控制器名称,而不是从数据库中获取这些名称。
function __construct()
{
parent::__construct();
if ( ! $this->session->userdata('logged_in'))
{
// Allow some methods names from the database permission?
$allowed = array(
);
if ( ! in_array($this->router->fetch_method(), $allowed)
{
// Not Allowed Access
redirect('admin/error_permission');
}
}
}
答案 0 :(得分:0)
$permissions = 'a:2:{s:6:"access";a:1:{i:0;s:11:"column_left";}s:6:"modify";a:1:{i:0;s:11:"column_left";}}';
$permissions_array = unserialize($permissions);
var_dump($permissions_array);
输出:
array(2) {
'access' =>
array(1) {
[0] =>
string(11) "column_left"
}
'modify' =>
array(1) {
[0] =>
string(11) "column_left"
}
}
if (false === array_key_exists($this->router->fetch_method(), $permissions_array))
{
// Not Allowed Access
redirect('admin/error_permission');
}