读ecshop笔记(二)——RBAC

ECSHOP在线手册:http://book.ecmoban.com/

admin_action 管理权限分配
字段类型Null/默认注释
action_idtinyint(3) 否 / 自增ID号
parent_idtinyint(3) 否 / 0该id 项的父id,对应本表的action_id字段
action_codevarchar(20)否 / 代表权限的英文字符串,对应汉文在语言文件中,如果该字段有某个字符串,就表示有该权限
relevancevarchar(20)否 /  
role  
字段类型Null/默认注释
Role_idSmallint(5) 
Role_nameVarchar(60) 
Action_listText 
Role_describetext 
admin_user  管理员管理
字段类型Null/默认注释
user_idsmallint(5) 否 / 自增id号,管理员代码
user_namevarchar(60)否 / 管理员登录名
emailvarchar(60)否 / 管理员邮箱
passwordvarchar(32)否 / 管理员登录密码
add_timeint(11)否 / 管理员添加时间
last_loginint(11)否 / 管理员最后一次登录时间
last_ipvarchar(15)否 / 管理员最后一次登录IP
action_listtext否 / 管理员管理权限列表
nav_listtext否 / 管理员导航栏配置项
lang_typevarchar(50)否 /  
agency_idsmallint(5) 否 / 该管理员负责的办事处理的id,同agency的agency_id字段.如果管理员没有负责办事处,则此处为0
suppliers_idsmallint(5)是 / 0 
todolistlongtext是 / 记事本记录的数据
role_idsmallint(5)是 /  

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

admin_log  管理日志
字段类型Null/默认注释
log_idint(10) 否 / 自增ID号
log_timeint(10) 否 / 0写日志时间
user_idtinyint(3) 否 / 0该日志所记录的操作者id,同admin_user的user_id
log_infovarchar(255)否 /管理操作内容
ip_addressvarchar(15)否 /登录者登录IP
admin_message  管理留言 
字段类型Null/默认注释
message_idsmallint(5) 否 / 自增id号
sender_idtinyint(3) 否 / 0发送该留言的管理员id,同admin_user的user_id
receiver_idtinyint(3) 否 / 0接收消息管理员id,同admin_user的user_id,如果是给多个管理员发送,则同一个消息给每个管理员id发送一条
sent_timeint(11) 否 / 0留言发送时间
read_timeint(11) 否 / 0留言阅读时间
readedtinyint(1) 否 / 0留言是否阅读1已阅读;0未阅读
deletedtinyint(1) 否 / 0留言是否已经被删除 1已删除;0未删除
titlevarchar(150)否 / 留言的主题
messagetext否 / 留言的内容

 

验证权限

/**
 * 判断管理员对某一个操作是否有权限。
 *
 * 根据当前对应的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值