dd

thinkphp通过rabc实现仅显示有权限的列表

jerry thinkphp 2015年11月18日 收藏
thinkphp通过rabc实现仅显示有权限的列表
实现思想:将已有的模块和权限列表中对比实现,其实有更优的方案,根据具体的需求而定吧,成功案例请见http://liezy.com
1.控制器部分
/*如果验证模式为2即时验证,通过rbac去即时获得用户的权限列表*/
//import('@.ORG.RBACFRONT');
//$accessList = RBAC::getAccessList($_SESSION[C('MEMBER_AUTH_KEY')]);
 
/*验证模式为1使用,登录验证模式,登录后保存的权限访问列表*/
$accessList = $_SESSION['_ACCESS_LIST'];
 
//已有的模块
$module=array('BeginNego','Room','AgreeTpl','Agreement','Contact','EnterInfo','RoleFront','WebHelp');
 
foreach($module as $v){
    if(isset($accessList[strtoupper($v)][INDEX])) {
        $this->assign($v,$v);
    }
    //免验证管理员直接输出所有的模块
    if(isset($_SESSION['administrator'])){
        $this->assign($v,$v);
    }
}
2.模板展示部分
<if condition="!empty($WebHelp)">
    <ul>帮助文档</ul>
</if>
 
<div>
    <notempty name="WebHelp">
        <a class="l-link" href="javascript:f_addTab('listpage8','网站使用说明','{:U('Home-WebHelp/index')}')">网站使用说明</a> 
    </notempty> 
</div> 
dd