| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace App\Http\Controllers\Statistics\Auth;
- use App\Http\Controllers\Statistics\StatisticsBaseController;
- use App\Services\Statistics\Auth\AuthService;
- use App\Validators\AuthValidatorRequest;
- use Closure;
- use Illuminate\Support\Facades\Auth;
- use Encore\Admin\Facades\Admin;
- class LoginController extends StatisticsBaseController
- {
- /**
- * @var AuthService
- */
- protected $authService;
- /**
- * LoginController constructor.
- * @param AuthService $authService
- */
- public function __construct(AuthService $authService)
- {
- $this->authService = $authService;
- $this->middleware(function ($request, Closure $next) {
- if ($request->route()->getName() != 'statistics.logout') {
- if (Auth::guard('admin')->check()) {
- return redirect(route('statistics.home'));
- }
- }
- return $next($request);
- });
- }
- public function showLoginForm()
- {
- return view('statistics.app.auth.login');
- }
- public function loginByAccount(AuthValidatorRequest $request)
- {
- if (!$member=$this->authService->loginByAccount($request->account, $request->password, $request->autoLogin)) {
- return $this->sendErrorResponse("账号或密码错误");
- }
- $relative_subsites = $this->authService->getUserRelativeSubsites(Admin::user());
- if (!Admin::user()->isRole('administrator')) {
- if (!Admin::user()->isRole('caiqing')) {
- Auth::guard('admin')->logout();
- return $this->sendErrorResponse("不是才情管理员账号");
- }
- //判断登录用户所属分站权限
- if (!Admin::user()->canVisitSubsite(get_subsite_id())) {
- $relative_subsites = $this->authService->getUserRelativeSubsites(Admin::user());
- if (!$relative_subsites) {
- Auth::guard('admin')->logout();
- return $this->sendErrorResponse("分站管理员没有权限");
- }
- }
- }
- session(['caiqing_admin_susbite_id' => Admin::user()->subsite_id]);
- session(['caiqing_susbite_id' => Admin::user()->subsite_id]);
- session(['caiqing_relative_susbite_ids' => $relative_subsites]);
- return $this->sendSuccessResponse(['redirect_url'=>url($request->session()->pull('url.intended', 'statistics.home'))]);
- }
- public function logout()
- {
- $this->authService->logout();
- return redirect(route('statistics.login'));
- }
- }
|