Files
CompanyProject/芳林公司项目/www.zhiyuanhelp.com/application/admin/controller/AdminController.php
2024-09-27 01:32:49 +08:00

109 lines
2.8 KiB
PHP

<?php
/**
* 后台公用模型
*/
namespace app\admin\controller;
use think\Controller;
use think\exception\HttpResponseException;
use app\admin\service\ModelService;
use app\admin\service\AuthService;
class AdminController extends Controller
{
/**
* 开启登录控制
* @var bool
*/
protected $is_login = true;
/**
* 开启权限控制
* @var bool
*/
protected $is_auth = '';
/**
* 网站栏目
* @var string
*/
protected $nav = '';
/**
* 登录用户信息
* @var string
*/
protected $user = '';
/**
* 后台配置信息
* @var array
*/
protected $SysInfo = [];
/**
* 网站标题
* @var string
*/
protected $title = '';
/**
* 初始化数据
* Index constructor.
*/
public function __construct()
{
parent::__construct();
list($this->nav, $this->title, $this->is_login, $this->is_auth,) = ['', '', true, true];
$this->SysInfo = cache('SysInfo');
//检测登录情况
if ($this->is_login == true) {
$this->__checkLogin();
}
//判断是否有权限进行访问
if ($this->is_auth == true) {
$this->__checkAuth();
}
}
/**
* 检测登录
*/
public function __checkLogin()
{
$user = session('user');
//判断是否登录
if (empty($user)) {
$data = ['type' => 'error', 'code' => 1, 'msg' => '抱歉,您还没有登录获取访问权限!', 'url' => url('@admin/login')];
}
//判断登录是否过期
(isset($this->SysInfo['LoginDuration']) && !empty($this->SysInfo['LoginDuration'])) ? $LoginDuration = $this->SysInfo['LoginDuration'] : $LoginDuration = '';
if (!empty($LoginDuration) && !empty($user)) {
if (time() - $user['login_at'] >= $LoginDuration) {
\app\admin\service\LogService::loginLog($user['id'], 0, 1, "【登录过期】正在退出后台系统!");
$data = ['type' => 'error', 'code' => 1, 'msg' => '登录已过期,请重新登录!', 'url' => url('@admin/login')];
}
}
//返回错误信息
if (!empty($data)) {
session('user', null);
throw new HttpResponseException($this->request->isAjax() ? json($data) : exit(msg_error($data['msg'], $data['url'])));
}
$this->user = $user;
}
/**
* 检测登录情况
*/
public function __checkAuth()
{
if (AuthService::checkNode() == false) {
$data = ['type' => 'error', 'code' => 1, 'msg' => '抱歉,您暂无该权限,请联系管理员!', 'url' => url('@admin')];
throw new HttpResponseException($this->request->isAjax() ? json($data) : exit(msg_error($data['msg'], $data['url'])));
}
}
}