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、注意:判斷時間權限時候要換成小寫或大寫
新聞熱點
疑難解答