应用权限
当应用配置文件内开启auth项,并且应用存在auth方法时,可以在后台配置各个角色的权限(管理员拥有全部权限).
为了保证后台系统的安全性,所有后台载入的方法列表需保存在应用主文件的auth方法中,否则无法载入访问的方法.
auth 权限列表
function auth() {
Return array('homefunction'=>'后台主页','page2'=>'后台页面2');
}
模块内的方法使用:分隔(后台网址形式为?do=xxx:xxx:xxx)
function auth() {
Return array('homefunction'=>'后台主页','user:index'=>'用户查看','user:add'=>'用户增加','user:edit'=>'用户编辑','user:del'=>'用户删除');
}
合并多项同类型权限,合并后后台权限勾选时,只显示一个"用户管理"的勾选框
function auth() {
Return array('homefunction'=>'后台主页','user:index;user:add;user:edit;user:del'=>'用户管理');
}
如果应用有很多不同类型的权限,建议使用以下的数组格式,后台可以更直观的展示权限列表.
function auth() {
$auth=array();
$auth['基础管理']=array('homefunction'=>'后台主页','page2'=>'后台页面2');
$auth['用户管理']=array('user:index'=>'用户查看','user:add'=>'用户增加','user:edit'=>'用户编辑','user:del'=>'用户删除');
$auth['文章管理']=array('article:index'=>'文章列表查看','article:add'=>'文章增加','article:edit'=>'文章编辑','article:del'=>'文章删除');
Return $auth;
}
权限判断
后台应用可以通过P()函数判断当前登入用户是否拥有某个权限
function xxxx(){
if(!P('user:add')){
return E('无权限');
}
//.....
}
判断是否拥有其它应用的方法权限
if(P('user:add','classhash')){
echo('无权限');
return false;
}
判断某个用户是否拥有某个方法权限
if(P('user:add','classhash',$userid)){
echo('无权限');
return false;
}