mirror of https://gitee.com/karson/fastadmin.git
114 lines
3.4 KiB
PHP
114 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace app\admin\controller;
|
|
|
|
use app\admin\model\AdminLog;
|
|
use app\common\controller\Backend;
|
|
use think\Config;
|
|
use think\Hook;
|
|
use think\Validate;
|
|
|
|
/**
|
|
* 后台首页
|
|
* @internal
|
|
*/
|
|
class Index extends Backend
|
|
{
|
|
|
|
protected $noNeedLogin = ['login'];
|
|
protected $noNeedRight = ['index', 'logout'];
|
|
protected $layout = '';
|
|
|
|
public function _initialize()
|
|
{
|
|
parent::_initialize();
|
|
}
|
|
|
|
/**
|
|
* 后台首页
|
|
*/
|
|
public function index()
|
|
{
|
|
//
|
|
$menulist = $this->auth->getSidebar([
|
|
'dashboard' => 'hot',
|
|
'addon' => ['new', 'red', 'badge'],
|
|
'auth/rule' => 'side',
|
|
'general' => ['new', 'purple'],
|
|
], $this->view->site['fixedpage']);
|
|
$this->view->assign('menulist', $menulist);
|
|
$this->view->assign('title', __('Home'));
|
|
return $this->view->fetch();
|
|
}
|
|
|
|
/**
|
|
* 管理员登录
|
|
*/
|
|
public function login()
|
|
{
|
|
$url = $this->request->get('url', 'index/index');
|
|
if ($this->auth->isLogin())
|
|
{
|
|
$this->success(__("You've logged in, do not login again"), $url);
|
|
}
|
|
if ($this->request->isPost())
|
|
{
|
|
$username = $this->request->post('username');
|
|
$password = $this->request->post('password');
|
|
$keeplogin = $this->request->post('keeplogin');
|
|
$token = $this->request->post('__token__');
|
|
$rule = [
|
|
'username' => 'require|length:3,30',
|
|
'password' => 'require|length:3,30',
|
|
'__token__' => 'token',
|
|
];
|
|
$data = [
|
|
'username' => $username,
|
|
'password' => $password,
|
|
'__token__' => $token,
|
|
];
|
|
if (Config::get('fastadmin.login_captcha'))
|
|
{
|
|
$rule['captcha'] = 'require|captcha';
|
|
$data['captcha'] = $this->request->post('captcha');
|
|
}
|
|
$validate = new Validate($rule, [], ['username' => __('Username'), 'password' => __('Password'), 'captcha' => __('Captcha')]);
|
|
$result = $validate->check($data);
|
|
if (!$result)
|
|
{
|
|
$this->error($validate->getError(), $url, ['token' => $this->request->token()]);
|
|
}
|
|
AdminLog::setTitle(__('Login'));
|
|
$result = $this->auth->login($username, $password, $keeplogin ? 86400 : 0);
|
|
if ($result === true)
|
|
{
|
|
$this->success(__('Login successful'), $url, ['url' => $url, 'id' => $this->auth->id, 'username' => $username, 'avatar' => $this->auth->avatar]);
|
|
}
|
|
else
|
|
{
|
|
$this->error(__('Username or password is incorrect'), $url, ['token' => $this->request->token()]);
|
|
}
|
|
}
|
|
|
|
// 根据客户端的cookie,判断是否可以自动登录
|
|
if ($this->auth->autologin())
|
|
{
|
|
$this->redirect($url);
|
|
}
|
|
$background = cdnurl(Config::get('fastadmin.login_background'));
|
|
$this->view->assign('background', $background);
|
|
Hook::listen("login_init", $this->request);
|
|
return $this->view->fetch();
|
|
}
|
|
|
|
/**
|
|
* 注销登录
|
|
*/
|
|
public function logout()
|
|
{
|
|
$this->auth->logout();
|
|
$this->success(__('Logout successful'), 'index/login');
|
|
}
|
|
|
|
}
|