博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读ecshop笔记(二)——RBAC
阅读量:5787 次
发布时间:2019-06-18

本文共 2735 字,大约阅读时间需要 9 分钟。

ECSHOP在线手册:

admin_action 管理权限分配

字段 类型 Null/默认 注释
action_id tinyint(3)  否 /  自增ID号
parent_id tinyint(3)  否 / 0 该id 项的父id,对应本表的action_id字段
action_code varchar(20) 否 /  代表权限的英文字符串,对应汉文在语言文件中,如果该字段有某个字符串,就表示有该权限
relevance varchar(20) 否 /   

role  

字段 类型 Null/默认 注释
Role_id Smallint(5)  
Role_name Varchar(60)  
Action_list Text  
Role_describe text  

admin_user  管理员管理

字段 类型 Null/默认 注释
user_id smallint(5)  否 /  自增id号,管理员代码
user_name varchar(60) 否 /  管理员登录名
email varchar(60) 否 /  管理员邮箱
password varchar(32) 否 /  管理员登录密码
add_time int(11) 否 /  管理员添加时间
last_login int(11) 否 /  管理员最后一次登录时间
last_ip varchar(15) 否 /  管理员最后一次登录IP
action_list text 否 /  管理员管理权限列表
nav_list text 否 /  管理员导航栏配置项
lang_type varchar(50) 否 /   
agency_id smallint(5)  否 /  该管理员负责的办事处理的id,同agency的agency_id字段.如果管理员没有负责办事处,则此处为0
suppliers_id smallint(5) 是 / 0  
todolist longtext 是 /  记事本记录的数据
role_id smallint(5) 是 /   

action_list 权限列表会跟随role_id 父类的管理权限分配而改变

admin_log  管理日志

字段 类型 Null/默认 注释
log_id int(10)  否 /  自增ID号
log_time int(10)  否 / 0 写日志时间
user_id tinyint(3)  否 / 0 该日志所记录的操作者id,同admin_user的user_id
log_info varchar(255) 否 / 管理操作内容
ip_address varchar(15) 否 / 登录者登录IP

admin_message  管理留言 

字段 类型 Null/默认 注释
message_id smallint(5)  否 /  自增id号
sender_id tinyint(3)  否 / 0 发送该留言的管理员id,同admin_user的user_id
receiver_id tinyint(3)  否 / 0 接收消息管理员id,同admin_user的user_id,如果是给多个管理员发送,则同一个消息给每个管理员id发送一条
sent_time int(11)  否 / 0 留言发送时间
read_time int(11)  否 / 0 留言阅读时间
readed tinyint(1)  否 / 0 留言是否阅读1已阅读;0未阅读
deleted tinyint(1)  否 / 0 留言是否已经被删除 1已删除;0未删除
title varchar(150) 否 /  留言的主题
message text 否 /  留言的内容

 

验证权限

/** * 判断管理员对某一个操作是否有权限。 * * 根据当前对应的action_code,然后再和用户session里面的action_list做匹配,以此来决定是否可以继续执行。 * @param     string    $priv_str    操作对应的priv_str * @param     string    $msg_type       返回的类型 * @return true/false */function admin_priv($priv_str, $msg_type = '' , $msg_output = true){    global $_LANG;    if ($_SESSION['action_list'] == 'all')    {        return true;    }    if (strpos(',' . $_SESSION['action_list'] . ',', ',' . $priv_str . ',') === false)    {        $link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');        if ( $msg_output)        {            sys_msg($_LANG['priv_error'], 0, $link);        }        return false;    }    else    {        return true;    }}/** * 检查管理员权限 * * @access  public * @param   string  $authz * @return  boolean */function check_authz($authz){    return (preg_match('/,*'.$authz.',*/', $_SESSION['action_list']) || $_SESSION['action_list'] == 'all');}/** * 检查管理员权限,返回JSON格式数剧 * * @access  public * @param   string  $authz * @return  void */function check_authz_json($authz){    if (!check_authz($authz))    {        make_json_error($GLOBALS['_LANG']['priv_error']);    }}

 

转载于:https://www.cnblogs.com/lixingbaophp/p/5251387.html

你可能感兴趣的文章
搭建vsftpd服务器,使用匿名账户登入
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
Java虚拟机管理的内存运行时数据区域解释
查看>>
人人都会深度学习之Tensorflow基础快速入门
查看>>
ChPlayer播放器的使用
查看>>
js 经过修改改良的全浏览器支持的软键盘,随机排列
查看>>
Mysql读写分离
查看>>
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>
Web日志安全分析工具 v2.0发布
查看>>
JS重载
查看>>
python2和python3同安装在Windows上,切换问题
查看>>
php加速工具xcache的安装与使用(基于LNMP环境)
查看>>
android超链接
查看>>
统计数据库大小
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
L104
查看>>
用javascript获取地址栏参数
查看>>
一起谈.NET技术,你应该知道的15个Silverlight诀窍
查看>>