首页 > 代码库 > Ecshop权限管理

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权限管理