微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐