搜索
系统检测到您的用户名不符合规范:

layout中动态加载后台管理权限

浏览:947 发布日期:2018年05月21日 分类:技术分享 关键字: 权限 动态加载 layout
先声明,本人小白一个!有不对之处,请指正!
可以用框架的RBAC,本篇不是该方法。本篇主要介绍通过动态修改配置,在layout布局模板中,根据不同管理人员,动态加载相应的权限列表。
大体流程:后台登录【根据管理人员权限等级】-》查询权限列表【返回管理权限列表】-》动态写入到配置权限php文件-》跳转时根据权限配置表将数据发送至layout-》显示
登录时关键代码:switch ($rtn["权限字段"])
{
case 0:$tmp='(1,2,3,4)';break;
case 1:$tmp='(1,2,4)';break;
case '2':$tmp='()';break;
default:
$this->error('请确保您有后台管理权限:(');break;
}
$authhead=$model->where('auth_level=0 and auth_path in '.$tmp)->getField('auth_id,auth_name,auth_path,auth_level');
$listbody=$model->where('auth_level=1')->getField('auth_id,auth_name,auth_func,auth_path,auth_level');
writeAuth($authhead,$listbody);
权限文件位于当前分组-》conf目录下:
文件:1、auth.php-权限文件;2、config.php
1、动态写入、读取权限文件
2、config.php return array('LOAD_EXT_CONFIG'=>'auth');
writeAuth写在common 文件 function.php中,代码如下:function writeAuth($arr1,$arr2) {
$path =MODULE_NAME. '/Conf/auth.php';
if(!@fileperms($path)==33206){ //读取指定文件权限
@chmod($path, 0777); //如果权限不够,修改权限文件权限;
}
$rtn= file_put_contents($path, "<?php return array(\r\n 'head'=>" . var_export($arr1,true) . ",\r\n'body'=>".var_export($arr2,true)."\r\n);", LOCK_EX);
@unlink(RUNTIME_FILE);
return $rtn;
}
正常情况下是无法写入配置文件,通过 @chmod($path, 0777);修改
亲测可用!
登录权限配置修改后,后台控制器,自定义一个父类控制A,所有后台都继承于A,当然可以在每个控制添加下面代码。不如直接在父控制器写一个~function __constructor(){
$this->assign('head',C('authhead'));
$this->assign('body',C('listbody'));
if (!isset($_SESSION['*****'])) {
$this->error('对不起,您还没有登录!请先登录再进行浏览', U('***'), 1);
}}
普通控制 初始化时 parent::__constructor();
在布局模板中将读取的配置权限信息动态显示。<foreach name="head" item="vo">
<div class="panel panel-primary">
<div class="panel-heading toggle" >
<h4 class="panel-title">{$vo.auth_name}</h4>
</div>
<div class="panel-body">
<div class="list-group">
<foreach name="body" item="vo1">
<if condition="$vo1['auth_path'] eq $vo['auth_path']">
<a href="{:U($vo1['auth_func'])}" class="list-group-item">
{$vo1.auth_name}</a>
</if>
</foreach>
</div>
</div>
</div>
</foreach>
数据库权限表:

ok,如有不清楚的地方可以留言~~
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
wyofukqqq
积分:134 等级:LV1
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /