<?php namespace App\Services\Statistics\Auth; /*use App\Models\StatisticsUser;*/ use Encore\Admin\Auth\Database\Administrator; use Illuminate\Contracts\Auth\Authenticatable; use App\Repositories\Statistics\StatisticsUserRepository; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Hash; use App\Models\Admin\SubsiteAdminUser; class AuthService { /** * AuthService constructor. */ protected $statisticsUserRepository; protected $administrator; public function __construct(StatisticsUserRepository $statisticsUserRepository, Administrator $administrator) { $this->statisticsUserRepository = $statisticsUserRepository; $this->administrator = $administrator; } public function loginByAccount($account, $password = '', $isAutoLogin = 0) { $user=$this->checkUser($account, $password); if (!$user) { return false; } $this->login($user, $isAutoLogin); return $user; } public function checkUser($username, $password) { $user=$this->administrator->where(['username'=>$username])->first(); if (!$user) { return false; } if ($password && !Hash::check($password, $user->password)) { return false; } return $user; } public function login($user, $isAutoLogin = 0) { $isAutoLogin=$isAutoLogin?true:false; if ($user instanceof Administrator) { Auth::guard('admin')->login($user, $isAutoLogin); } } public function logout() { Auth::guard('admin')->logout(); } public function getUserRelativeSubsites($user) { $where = ['admin_user_id'=>$user->id]; return SubsiteAdminUser::where($where)->pluck('subsite_id')->toArray(); } }