Ecshop权限管理
Posted YunGaZeon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ecshop权限管理相关的知识,希望对你有一定的参考价值。
主要php文件:
1,admin/includes/inc_priv.php ECSHOP权限命名对照配置
2,admin/includes/inc_menu.php ECSHOP管理中心菜单URL配置
3,languages/zh_cn/admin/priv_action.php 权限语言配置
主要数据表:ecs_admin_action
略解:
inc_priv中每一项配置$purview[‘权限对照名‘] = 单个权限名action_code 或 [统一控制的多个权限action_code];而这些权限是在ecs_admin_action有记录的。
【权限对照名】ecs_admin_action可以没有记录,但同样能使用admin_priv来控制访问
例:
$purview[‘admin_logs‘] = array(‘logs_manage‘, ‘logs_drop‘); $purview[‘admin_list‘] = array(‘admin_manage‘, ‘admin_drop‘, ‘allot_priv‘); $purview[‘agency_list‘] = ‘agency_manage‘;
inc_menu的每一项配置$modules[‘菜单组名‘][‘inc_priv的权限命名‘] = [‘url action‘];
例:
$modules[‘10_priv_admin‘][‘admin_logs‘] = ‘admin_logs.php?act=list‘; $modules[‘10_priv_admin‘][‘admin_list‘] = ‘privilege.php?act=list‘; $modules[‘10_priv_admin‘][‘agency_list‘] = ‘agency.php?act=list‘;
以 admin_list为例,这样配置,相当于privilege.php?act=list包含了4(1+3)个权限。这样,必须管理员同时拥有admin_list,admin_manage,admin_drop,allot_priv四个权限才能对这个页面进行全限操作,提高了权限控制的灵活性。
priv_action是权限显示中文名,可以在role.php?act=add/edit页体现。
测试添加一个控制权限:
ecs_admin_action 新增:
action_id | parent_id | action_code |
222 | 0 | test_action |
223 | 222 | test_child |
inc_priv.php新增:
$purview[‘test_action‘] = ‘test_action‘; $purview[‘test_child1‘] = ‘test_child‘;
inc_menu.php新增:
$modules[‘17_action_test‘][‘test_action‘] = ‘test_action.php?act=list‘; $modules[‘17_action_test‘][‘test_child‘] = ‘test_action.php?act=child‘;
priv_action.php新增:
//测试权限 $_LANG[‘test_action‘] = ‘测试父权限 ‘; $_LANG[‘test_child‘] = ‘测试子权限 ‘;
在admin目录下新增test_action.php内容如下:
<?php /** * ECSHOP 权限管理测试页 * $Author: GaZeon */ define(‘IN_ECS‘, true); require(dirname(__FILE__) . ‘/includes/init.php‘); if ($_REQUEST[‘act‘] == ‘list‘) { /* 检查权限 */ admin_priv(‘test_action‘); echo ‘访问权限通过,欢迎来到父权限测试‘; } else if ($_REQUEST[‘act‘] == ‘test_child‘) { /* 检查权限 */ admin_priv(‘test_child‘); echo ‘访问权限通过,欢迎来到子权限测试‘; }
可以自行使用不同的角色测试。
以上是关于Ecshop权限管理的主要内容,如果未能解决你的问题,请参考以下文章