You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

131 lines
4.6 KiB

<?php
/**
* ECSHOP 管理员信息以及权限管理程序
* ============================================================================
* * 版权所有 2005-2016 上海商创网络科技有限公司,并保留所有权利。
* 网站地址: http://www.ecmoban.com;
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
* 使用;不允许对程序代码以任何形式任何目的的再发布。
* ============================================================================
* $Author: liubo $
* $Id: merchants_privilege.php 17217 2011-01-19 06:29:08Z liubo $
*/
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
/* act操作项的初始化 */
if (empty($_REQUEST['act']))
{
$_REQUEST['act'] = 'allot';
}
else
{
$_REQUEST['act'] = trim($_REQUEST['act']);
}
/*------------------------------------------------------ */
//-- 为管理员分配权限
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'allot')
{
include_once(ROOT_PATH . 'languages/' .$_CFG['lang']. '/admin/priv_action.php');
admin_priv('users_merchants_priv');
$priv_str = $db->getOne("SELECT action_list FROM " .$ecs->table('merchants_privilege'). " WHERE 1");
/* 获取权限的分组数据 */
$sql_query = "SELECT action_id, parent_id, action_code,relevance FROM " .$ecs->table('admin_action').
" WHERE parent_id = 0";
$res = $db->query($sql_query);
while ($rows = $db->FetchRow($res))
{
$priv_arr[$rows['action_id']] = $rows;
}
if($priv_arr){
$db_create_in = array_keys($priv_arr);
}else{
$db_create_in = '';
}
/* 按权限组查询底级的权限名称 */
$sql = "SELECT action_id, parent_id, action_code,relevance FROM " .$ecs->table('admin_action').
" WHERE parent_id " .db_create_in($db_create_in);
$result = $db->query($sql);
while ($priv = $db->FetchRow($result))
{
$priv_arr[$priv["parent_id"]]["priv"][$priv["action_code"]] = $priv;
}
if($priv_arr){
// 将同一组的权限使用 "," 连接起来,供JS全选 ecmoban模板堂 --zhuo
foreach ($priv_arr AS $action_id => $action_group)
{
if($action_group['priv']){
$priv = @array_keys($action_group['priv']);
$priv_arr[$action_id]['priv_list'] = join(',', $priv);
if(!empty($action_group['priv'])){
foreach ($action_group['priv'] AS $key => $val)
{
$priv_arr[$action_id]['priv'][$key]['cando'] = (strpos($priv_str, $val['action_code']) !== false || $priv_str == 'all') ? 1 : 0;
}
}
}
}
}else{
$priv_arr = array();
}
/* 赋值 */
$smarty->assign('lang', $_LANG);
$smarty->assign('ur_here', $_LANG['allot_priv']);
$smarty->assign('priv_arr', $priv_arr);
$smarty->assign('form_act', 'update_allot');
/* 显示页面 */
assign_query_info();
$smarty->display('merchants_privilege_allot.htm');
}
/*------------------------------------------------------ */
//-- 更新管理员的权限
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'update_allot')
{
admin_priv('users_merchants_priv');
$initialize_allot = isset($_POST['initialize_allot']) ? intval($_POST['initialize_allot']) : 0;
if($_POST['action_code']){
$act_list = implode(",", $_POST['action_code']);
$sql = "SELECT action_list FROM " .$GLOBALS['ecs']->table('merchants_privilege'). " WHERE 1";
$action_list = $db->getOne($sql);
if($action_list){
$sql = "UPDATE " .$ecs->table('merchants_privilege'). " SET action_list = '$act_list' WHERE 1";
$db->query($sql);
}else{
$sql = "INSERT INTO " .$ecs->table('merchants_privilege'). " (`action_list`) VALUES ('$act_list')";
$db->query($sql);
}
//初始化所有商家管理权限
if($initialize_allot == 1){
$sql = "UPDATE " .$ecs->table('admin_user'). " SET action_list = '$act_list' WHERE 1 AND ru_id > 0";
$db->query($sql);
}
}
/* 提示信息 */
$link[] = array('text' => $_LANG['go_back'], 'href'=>'merchants_privilege.php?act=allot');
sys_msg($_LANG['action_succeed'], 0, $link);
}
?>