我是CodeIgniter框架的中间人
我将开发一个具有“管理员,经理,员工”角色的新系统。我需要管理员或经理更改任何员工密码,员工会话需要销毁并从他们的帐户注销。
我对此一无所知。任何人都可以帮助如何做到这一点,为此我必须选择哪种类型的会话保存路径?
答案 0 :(得分:1)
有一个简单的解决方案:
1 - 在您的用户表格中添加一个名为" forcelogout"例如,它可以是具有2个选项的ENUM' Y'或者' N'和默认值' N'
ALTER TABLE `users` ADD COLUMN `forcelogout` ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT 'Y: force user to logout, N: nothing to do'
2 - 更新用户密码时,请将该字段值更新为' N'
3 - 在您的父控制器(application / core / MY_Controller.php)中,选中" forcelogout"价值和退出用户,如果它' Y'。然后将值更新为' N'避免循环
public function __construct()
{
$this->do_we_need_to_logout_user();
}
private function do_we_need_to_logout_user(){
$this->load->model('users_model');
$user = $this->users_model->get_user($this->session->user_id);
if ( $user[0]->forcelogout == 'Y' ){
$user_id = $this->session->user_id;
$this->session->sess_destroy();
$user = array();
$user['forcelogout'] = 'N';
$this->users_model->update_user($user_id, $user);
redirect('/login');
}
}
答案 1 :(得分:0)
管理员,经理方:他们更改员工密码。
在员工方面:每次检索员工数据时,请检查密码状态是否已更改。如果是,则销毁该员工的会话。
再次成功登录后,将密码状态设置为null或其他内容。