管理员可以设置平台的基本信息、审核店铺入驻信息、审核商品上架、控制平台的一些营销功能的开启状态、设置线上支付的收款账号、调解售后纠纷、审核店铺结算单、查看各类统计信息、配置微信公众号、更新系统缓存等。
首先管理员从后台登录入口/admin/login/index进行登录操作,根据传入的用户名以及MD5加密后的密码,从数据表admin中对应的管理员数据。登录成功后,更新管理员的登录次数和登录时间信息,并设置管理员session信息。
//更新 admin 最新信息
$update_info = array(
'admin_login_num' => ($admin_info['admin_login_num'] + 1),
'admin_login_time' => TIMESTAMP
);
$admin_mod->editAdmin($update_info, $admin_info['admin_id']);
//设置 session
session('admin_id', $admin_info['admin_id']);
session('admin_name', $admin_info['admin_name']);
session('admin_gid', $admin_info['admin_gid']);
session('admin_is_super', $admin_info['admin_is_super']);管理员所有的业务模块均继承自基类\application\admin\controller\AdminControl.php,每当管理员控制器在初始化的时候,都会进行三步主要操作:
1. 从缓存中取出配置信息,并赋值到ThinkPHP的全局配置参数中,因为后台对配置表config的读取会比较频繁,这样操作会比较方便。
2. 如果管理员不是超级管理员(admin_id为1),则检查该管理员是否有操作该控制器的权限。
3. 设置菜单。
$this->admin_info = $this->systemLogin();
$config_list = rkcache('config', true);
config($config_list);
//引用语言包的类型 针对于数据库读写类型 中文\英文
if (in_array(cookie('ds_admin_sql_lang'), array('zh-cn', 'en-us'))) {
config('default_sql_lang', cookie('ds_admin_sql_lang'));
}else{
config('default_sql_lang', 'zh-cn');
}
if ($this->admin_info['admin_id'] != 1) {
// 验证权限
$this->checkPermission();
}
$this->setMenuList();\application\admin\controller\AdminControl.php中的limitList方法保存所有权限列表。
$_limit = array(
array('name' => lang('ds_setting'), 'child' => array(
array('name' => lang('ds_base'), 'action' => null, 'controller' => 'Config'),
array('name' => lang('ds_account'), 'action' => null, 'controller' => 'Account'),
array('name' => lang('ds_upload_set'), 'action' => null, 'controller' => 'Upload'),
array('name' => lang('ds_seo_set'), 'action' => null, 'controller' => 'Seo'),
array('name' => lang('ds_payment'), 'action' => null, 'controller' => 'Payment'),
array('name' => lang('ds_message'), 'action' => null, 'controller' => 'Message'),
array('name' => lang('ds_express'), 'action' => null, 'controller' => 'Express'),
array('name' => lang('ds_waybill'), 'action' => null, 'controller' => 'Waybill'),
array('name' => lang('ds_region'), 'action' => null, 'controller' => 'Region'),
array('name' => lang('ds_offpayarea'), 'action' => null, 'controller' => 'Offpayarea'),
array('name' => lang('ds_adminlog'), 'action' => null, 'controller' => 'Adminlog'),
)),
……从管理员的权限组表gadmin中获取当前管理员所属的权限组,其中glimits为使用公共方法ds_encrypt将含有controller和action与md5加密后权限名称进行加密的字符。将glimits用公共方法ds_decrypt解密后,根据比较当前控制器和操作是否在所属权限组中,如果不存在则隐藏相应的菜单。菜单在\application\admin\controller\AdminControl.php中的menuList进行声明。
'dashboard' => array(
'name' => 'dashboard',
'text' => lang('ds_dashboard'),
'children' => array(
'welcome' => array(
'ico'=>"",
'text' => lang('ds_welcome'),
'args' => 'welcome,Dashboard,dashboard',
),
……对于一些重要的操作,可以使用AdminControl类中的log方法将操作信息记录到adminlog表中,以便日后审查。
QQ:858761000
联系电话:15364080101(微信同号)
Copyright@2010-至今 长沙德尚网络科技有限公司 版权所有
湘ICP备14007737号-2
