1CMS文档

应用权限

为了保证后台系统的安全性,后台载入的方法需设置为后台方法后才可加载.

设置应用下属方法为后台方法后,可在后台->应用管理 对应的应用页面内设置角色权限

通过注解设置

class test {
    /**
    * @auth 后台主页
    */
    function home(){
        echo('后台主页');
        return true;
    }
    /**
    * @auth 后台页面2
    */
    function page2(){
        echo('后台页面2');
        return true;
    }
}

注解需php>=5.6

注解分组权限

class test {
    /**
    * @auth 后台:主页
    */
    function home(){
        echo('后台主页');
        return true;
    }
    /**
    * @auth 后台:页面2
    */
    function page2(){
        echo('后台页面2');
        return true;
    }
    /**
    * @auth 用户:资料修改
    */
    function useredit(){
        echo('资料修改');
        return true;
    }
    /**
    * @auth 用户:密码修改
    */
    function passwordEdit(){
        echo('密码修改');
        return true;
    }
}

当 auth=-1 时,允许后台未登入用户访问此方法,如用户注册,登入等

当 auth=0 时,允许所有后台登入用户访问此方法,如文章列表页, 由方法内部自行判断是否允许访问

通过auth()方法设置

class test {
    function auth() {
        Return array('home'=>'后台主页','page2'=>'后台页面2');
    }
    function home(){
        echo('后台主页');
        return true;
    }
    function page2(){
        echo('后台页面2');
        return true;
    }
}

模块内的方法使用:分隔(后台网址形式为?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;
}