本文整理汇总了PHP中RBAC::getRecordAccessList方法的典型用法代码示例。如果您正苦于以下问题:PHP RBAC::getRecordAccessList方法的具体用法?PHP RBAC::getRecordAccessList怎么用?PHP RBAC::getRecordAccessList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RBAC
的用法示例。
在下文中一共展示了RBAC::getRecordAccessList方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: render
public function render($data)
{
require DConfig_PATH . "/System/systembutton.inc.php";
// 引入按钮配置文件
//引用需要确认按钮的配置文件
$confirmcmit = (require DConfig_PATH . "/System/confirmcmit.inc.php");
$ActionName = ACTION_NAME;
//操作方法
if ($ActionName == "lookupDataRoamPull") {
$ActionName = "add";
}
$accessList = RBAC::getRecordAccessList();
//当前类的所有权限组
/**
* 开始 获取当前类的所有函数
*/
$modulename = MODULE_NAME;
// 当前类名
$class = $modulename . "Action";
$my_object = new $class();
$class_methods = get_class_methods(get_class($my_object));
//开启反射
// $my_object = new ReflectionClass($class);
// $class_methods = $my_object->getMethods(ReflectionMethod::IS_PUBLIC);
// $class_methods=obj2arr($class_methods);
// dump($class_methods);
/**
* 结束 获取当前类的所有函数
*/
/**
* 开始构造按钮显示
*/
// 第一步 获取公共按钮集合
$generalbutton = $general[strtoupper($ActionName)];
// 第二步 获取当前模型的特殊按钮集合
$specialbutton = $special[$modulename][strtoupper($ActionName)];
$buttonList = array();
// 第三步 设置按钮组
if (count($generalbutton) > 0) {
$buttonList = array_merge($buttonList, $generalbutton);
}
if (count($specialbutton) > 0) {
$buttonList = array_merge($buttonList, $specialbutton);
}
// 第四步 判断权限 构造HTML
$html = '<div class="formBar">';
$html .= '<ul>';
foreach ($buttonList as $k => $v) {
if (!in_array("auditEdit", $class_methods) && $k == "confirmcmit" && in_array($modulename, $confirmcmit) && !in_array($modulename, array('MisAutoMrt', 'MisAutoHxr', 'MisAutoAux', 'MisAutoTyl'))) {
//如果是带审批流的模板,将取消确认提交按钮
if ($_SESSION[strtolower($modulename . "_" . $ActionName)] != '' || $_SESSION[C('ADMIN_AUTH_KEY')] || strtoupper($ActionName) == 'AUDITEDIT') {
$html .= $v['html'];
continue;
}
}
if (in_array("auditEdit", $class_methods) && strtoupper($ActionName) == 'AUDITEDIT') {
//获取流程审批节点信息
$process_relation_formDao = M("process_relation_form");
$where = array();
$where['tablename'] = $modulename;
$where['tableid'] = $data['data']['id'];
$where['auditState'] = 0;
//未处理
$where['doing'] = 1;
//进行中的节点
$where['flowtype'] = array("gt", 1);
//审批节点或者转子流程节点
$newinfo = $process_relation_formDao->where($where)->order('sort asc')->select();
$infolist = array_merge($newinfo);
if ($infolist[0]['flowtype'] == 3) {
//当前审核节点时子流程。则排除审核和打回按钮。保留生单按钮
if ($k == "auditProcess") {
continue;
}
} else {
if ($k == "lookupAuditTuiProcess") {
continue;
}
}
}
// 判断 当前按钮是否存在
if (count($v) > 0) {
// 1、判断当前类里面有没有这个函数
if (in_array($k, $class_methods)) {
// 2、判断返回值是不是空的,是空的就是没有'-'
if ($_SESSION[strtolower($modulename . "_" . $ActionName)] != '' || $_SESSION[C('ADMIN_AUTH_KEY')] || strtoupper($ActionName) == 'AUDITEDIT') {
$show = 1;
// if($data){
// $key=substr($accessList[strtoupper($ActionName)],strpos($accessList[strtoupper($ActionName)],'-')+1); //截取后面一段
// $show = $this->checkRBAC($key,$data['data']);
// }
// 判断是不是有权限
if ($show) {
// 判断是不是有多个按钮
if ($v['more']) {
// 多个按钮过滤
foreach ($v['list'] as $k1 => $v1) {
// 判断是否有规则存在
if ($v1['rules']) {
$a = $v1['rules'];
//.........这里部分代码省略.........