ECSHOP在线手册:http://book.ecmoban.com/
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) | 否 / | 管理员登录名 |
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']); } }