首页建站经验 ecshop管理员离职冻结账号

ecshop管理员离职冻结账号

如果因为管理员离职将后台账号删除的话,那么管理员日志中将无法查看到该员工在职期间的操作记录,为解决这一问题,我的思路不必删除账号,只需将账号冻结,员工操作日志永久保留,这是…

如果因为管理员离职将后台账号删除的话,那么管理员日志中将无法查看到该员工在职期间的操作记录,为解决这一问题,我的思路不必删除账号,只需将账号冻结,员工操作日志永久保留,这是一种比较合理的处理方式。

第一步:修改数据库,表ecs_admin_user增加一个字段status用来保存账号状态(1-正常,2-离职)。

ALTER TABLE ecs_admin_user ADD status SMALLINT( 5 ) UNSIGNED NOT NULL DEFAULT '1' COMMENT '账号状态';

第二步:修改相关语言文件,/languages/zh_cn/admin/privilege.php增加语言项。

$_LANG['login_freezing'] = '您输入的帐号被冻结,请联系公司网站负责人。';

$_LANG['select_status'] = '账号状态';

$_LANG['normal'] = '正常';

$_LANG['left'] = '离职';

第三步:修改/admin/privilege.php,增加账号状态检查。

1、$_REQUEST[‘act’] == 'signin'中添加代码:

if ($row)

{

// 检查是否为供货商的管理员 所属供货商是否有效

if (!empty($row['suppliers_id']))

{

$supplier_is_check = suppliers_list_info(' is_check = 1 AND suppliers_id = ' . $row['suppliers_id']);

if (empty($supplier_is_check))

{

sys_msg($_LANG['login_disable'], 1);

}

}

/** 添加代码开始 检查帐号是否被冻结 **/

if ($row['status'] == 2)

{

sys_msg($_LANG['login_freezing'], 1);

exit();

}

/** 添加代码结束 检查帐号是否被冻结 **/

// 登录成功

set_admin_session($row['user_id'], $row['user_name'], $row['action_list'], $row['last_login']);

$_SESSION['suppliers_id'] = $row['suppliers_id'];

}

2、文件末尾增加方法get_status_list,用来获取账号状态。

function get_status_list()

{

$list = array();

$sql_id = 'SELECT user_id '.

'FROM ' .$GLOBALS['ecs']->table('admin_user');

$list = $GLOBALS['db']->getAll($sql_id);

$sql_st = 'SELECT distinct status '.

'FROM ' .$GLOBALS['ecs']->table('admin_user');

$list = $GLOBALS['db']->getAll($sql_st);

return $list;

}

3、$_REQUEST[‘act’] == 'signin'中修改语句为:

/* 检查密码是否正确 */

$sql = "SELECT user_id, user_name, password, last_login, action_list, last_login, suppliers_id, status".

" FROM " . $ecs->table('admin_user') .

" WHERE user_name = '" . $_POST['username']. "' AND password = '" . md5($_POST['password']) . "'";

4、添加管理员方法$_REQUEST[‘act’] == 'add'将账号状态赋值到模板:

$smarty->assign('select_status',  get_status_list());

5、编辑管理员方法$_REQUEST[‘act’] == 'edit'''将账号状态赋值到模板:

/* 如果被编辑的管理员拥有了all这个权限,将不能编辑 */

if ($priv_str != 'all')

{

$smarty->assign('select_role', get_role_list());

$smarty->assign('select_status', get_status_list()); //添加的代码

}

6、更新管理员信息方法$_REQUEST[‘act’] == ‘update’ || $_REQUEST[‘act’] == 'update_self''获取表单中提交的账号状态:

$admin_status = !empty($_REQUEST['status']) ? trim($_REQUEST['status']) : 1; //账号状态

//更新管理员信息

$sql = "UPDATE " .$ecs->table('admin_user'). " SET ".

"user_name = '$admin_name', ".

"email = '$admin_email', ".

"status = '$admin_status' ".

$action_list.

$role_id.

$password.

$nav_list.

"WHERE user_id = '$admin_id'";

7、更改获取管理员列表get_admin_userlist方法:

function get_admin_userlist()

{

$list = array();

$sql = 'SELECT user_id, user_name, email, add_time, last_login, last_ip, status '. //增加status

'FROM ' .$GLOBALS['ecs']->table('admin_user').' ORDER BY user_id DESC';

$list = $GLOBALS['db']->getAll($sql);

foreach ($list AS $key=>$val)

{

$list[$key]['add_time'] = local_date($GLOBALS['_CFG']['time_format'], $val['add_time']);

$list[$key]['last_login'] = local_date($GLOBALS['_CFG']['time_format'], $val['last_login']);

}

return $list;

}

第四步:修改模板文件admin/templates/privilege_info.htm。

{if $select_role}

{$lang.select_role}

{/if}

在以上代码下添加加代码

{if $select_status}

{$lang.select_status}

{/if}

本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/jianzhan/jingyan/16179.html
上一篇dede内容页调用栏目链接和栏目名称
下一篇 ecshop后台显示登录管理员用户名
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部