closedir($handle);
打开文件获取文件名称
$classComment = (new ReflectionClass ($controller))->getDocComment();
影射方法获取方法中的注释。
if ($permission_list) { foreach ($permission_list as $permission) { $_session['permission'][] = md5(strtolower($permission['controller']) . "@" . strtolower($permission['method'])); $this->gen_menu_list($permission['controller'], $permission['method'], $permission['menu'], $permission['menu_sort'], $permission['sub_menu'], $permission['sub_menu_sort']); } }
function action_permission($controllers, $method){ if (isset($_SESSION['userinfo'])) { if ($_SESSION['userinfo']['id'] != 1) { if (!in_array(md5(strtolower($controllers) . "@" . strtolower($method)), $_SESSION['permission'])) { return false; } else { return true; } } else { return true; } }}
1、获取文件夹中的所有文件名称,打开文件名称,获取控制器中的类注释(控制器名称)和方法的注释(方法名称),存放到数据库中。
2、登陆时候每次获取登陆者的角色id,去查询该角色所有的权限和公共权限存放到session中。
3、在basecontroller控制器判断访问的URL中的控制器和方法访问做判断,存在通过,不存在提示没有该权限
4、注意:判断时间权限时候要换成小写或大写
新闻热点
疑难解答