首页  >  文章  >  php教程  >  Auth权限类使用示例

Auth权限类使用示例

WBOY
WBOY原创
2016-06-07 11:44:031406浏览

看了下官网上还没有一个Auth权限类实例应用,今天抽空写了下,希望对大家有所帮助

数据库如下
mc_admin_group

Field Type Allow Null Default Value
id mediumint(8) UNSIGNED No
title char(100) No
status tinyint(1) No 1
rules char(80) No

mc_admin_group_access

Field Type Allow Null Default Value
uid mediumint(8) UNSIGNED No
group_id mediumint(8) UNSIGNED No

mc_admin_menu

Field Type Allow Null Default Value
id smallint(6) No
name char(40) No
title varchar(50) No
condition varchar(60) No
pid smallint(6) No 0
g char(20) No
m char(20) No
a char(20) No
data char(30) No
listorder smallint(6) No 0
display enum('1','0') No '1'
status enum('1','0') No '1'

AdministratorAction.class.phpclass AdministratorAction extends Action{<br>     /**<br>      * 初始化<br>      */<br>     public function _initialize(){<br>         parent::_initialize();<br>         if($this->isLogin()){<br>             $this->checkRule();<br>         }<br>     }<br> <br>     /**<br>      * 判断是否登录<br>      * @return bool<br>      */<br>     public function isLogin(){<br>         if(!session(C('ADMIN_KEY'))){<br>             $this->redirect(C('ADMIN_GATEWAY'));<br>         }<br>         return true;<br>     }<br> <br>     /**<br>      * 检测是否有权限<br>      * @return bool<br>      */<br>     public function checkRule(){<br>         if( in_array(GROUP_NAME,array('Admin')) && in_array(MODULE_NAME,array('Index')) || session(C('ADMINISTRATOR'))) return true;<br>         $ruleName = '';<br>         $menu = S('menu')?S('menu'):D('AdminMenu')->cache_menu();<br>         foreach($menu as $v){<br>             if(GROUP_NAME == $v['g'] && MODULE_NAME == $v['m'] && ACTION_NAME == $v['a']){<br>                 $ruleName = $v['name'];<br>             }<br>         }<br>         $auth = new Auth();<br>         if(!$auth->check($ruleName,session(C('ADMIN_KEY')))){<br>             $this->error(L('LANG_NO_PERMISSION'),U(C('ADMIN_GATEWAY')));<br>         }<br>     }<br> }

AD:真正免费,域名+虚机+企业邮箱=0元

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn