class BaseAdmin extends Controller
{
public function __construct(){
// Controller には __construct マジック メソッドがあり、それを直接継承して呼び出します
parent::__construct();
// 1. まず public メソッドを使用して、ログインしているかどうかを確認します。ログインしていない場合は、ログインページに移動します。
// ログイン ページとメソッドを作成する必要があります
$this->_admin = session('admin');
// ログインしていないユーザーは許可されませんアクセスするには
if(!$this->_admin){
header('Location: /admins/Account/login');
exit;
}
$this->assign('admin',$this->_admin);
// ユーザーに権限があるかどうかを判断します
$ this-> ;db = 新しい Sysdb;
$group = $this->db->table('admin_groups')->where(array('gid'=>$this-> ;_admin[ 'gid']))->item();
if(!$group){
$this->request_error('申し訳ありませんが、持っていません権限');
}
$rights = json_decode($group['rights']);
// 現在のアクセス メニュー
// 99, request()->controller(); 現在のファイルを取得します
// 99, request()->action(); 現在のメソッドを取得します
$controller = request ()->controller() ;
$action = request()->action();
// 99、メニュー テーブル (admin_menus) をクエリし、次のコマンドでメニューを見つけます。ファイル名とメソッド名が同じです。注: メニューのメソッド名とファイル名を繰り返さないでください
$res = $this->db->table('admin_menus')->where(array('controller'=>) ;$controller ,'method'=>$action))->item();
if(!$res){
$this->request_error('申し訳ありませんが、あなたが訪問した関数は存在しません');
}
if($res['status']==1){
$this->request_error('申し訳ありませんが、関数は無効になっています');
}
if(!in_array($res['mid'],$rights)){
$this-> request_error ('申し訳ありませんが、権限がありません');
}
}
質疑応答