diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 85dca012580c..569a5c76e8ac 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -2,16 +2,19 @@ namespace App\Http\Controllers\Auth; +use App\Http\Controllers\BaseController; use App\Http\Controllers\Controller; use App\Libraries\OAuth; use App\Models\User; +use App\Transformers\UserTransformer; use App\Utils\Traits\UserSessionAttributes; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Log; use Laravel\Socialite\Facades\Socialite; -class LoginController extends Controller +class LoginController extends BaseController { /* |-------------------------------------------------------------------------- @@ -27,6 +30,10 @@ class LoginController extends Controller use AuthenticatesUsers; use UserSessionAttributes; + protected $entity_type = User::class; + + protected $entity_transformer = UserTransformer::class; + /** * Where to redirect users after login. * @@ -41,7 +48,8 @@ class LoginController extends Controller */ public function __construct() { - $this->middleware('guest:user')->except('logout'); + parent::__construct(); + // $this->middleware('guest:user')->except('logout'); } /** @@ -59,12 +67,11 @@ class LoginController extends Controller { $this->validateLogin($request); - if ($this->attemptLogin($request)) { + if ($this->attemptLogin($request)) + return $this->itemResponse($this->guard()->user()); + else + return response()->json(['message' => ctrans('texts.invalid_credentials')]); - return $this->authenticated($request, $this->guard()->user()) - ?: response()->json(['message' => ctrans('texts.invalid_credentials')]); - - } } /** diff --git a/app/Providers/MultiDatabaseUserProvider.php b/app/Providers/MultiDatabaseUserProvider.php index 0c818e9c43b2..77ffc243ce81 100644 --- a/app/Providers/MultiDatabaseUserProvider.php +++ b/app/Providers/MultiDatabaseUserProvider.php @@ -3,12 +3,12 @@ namespace App\Providers; use App\Libraries\MultiDB; -use Illuminate\Support\Str; -use Illuminate\Contracts\Auth\UserProvider; -use Illuminate\Contracts\Support\Arrayable; -use Illuminate\Contracts\Hashing\Hasher as HasherContract; use Illuminate\Contracts\Auth\Authenticatable as UserContract; -use PhpParser\Node\Expr\BinaryOp\Mul; +use Illuminate\Contracts\Auth\UserProvider; +use Illuminate\Contracts\Hashing\Hasher as HasherContract; +use Illuminate\Contracts\Support\Arrayable; +use Illuminate\Support\Facades\Log; +use Illuminate\Support\Str; class MultiDatabaseUserProvider implements UserProvider { @@ -108,14 +108,20 @@ class MultiDatabaseUserProvider implements UserProvider */ public function retrieveByCredentials(array $credentials) { + Log::error('retrieving by credentials'); if (empty($credentials) || (count($credentials) === 1 && array_key_exists('password', $credentials))) { return; } + Log::error('settings DB'); + $this->setDefaultDatabase(false, $credentials['email'], false); + Log::error('set DB'); + + // First we will add each credential element to the query as a where clause. // Then we can execute the query and, if we found a user, return it in a // Eloquent User "model" that will be utilized by the Guard instances. @@ -132,7 +138,7 @@ class MultiDatabaseUserProvider implements UserProvider $query->where($key, $value); } } - +Log::error($query->count()); return $query->first(); } @@ -144,9 +150,10 @@ class MultiDatabaseUserProvider implements UserProvider * @return bool */ public function validateCredentials(UserContract $user, array $credentials) - { - $plain = $credentials['password']; + { Log::error('validateCredentials'); + $plain = $credentials['password']; + Log::error($plain); return $this->hasher->check($plain, $user->getAuthPassword()); } @@ -210,7 +217,7 @@ class MultiDatabaseUserProvider implements UserProvider private function setDefaultDatabase($id = false, $email = false, $token = false) : void { - +Log::error('setting DB'); foreach (MultiDB::getDbs() as $database) { $this->setDB($database); @@ -225,6 +232,7 @@ class MultiDatabaseUserProvider implements UserProvider $user = $query->get(); if (count($user) >= 1) { + Log::error('found user, settings DB for EMAIL'); break; } @@ -232,7 +240,8 @@ class MultiDatabaseUserProvider implements UserProvider if ($token) { - + Log::error('found user, settings DB for TOKEN'); + $query->whereRaw("BINARY `token`= ?", $token); $token = $query->get();