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) |
否 / |
管理员登录名 |
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']);
}
}