ClassCMS

应用权限

当应用配置文件内开启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;
}