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>