Untitled

 avatar
unknown
php
2 years ago
2.4 kB
5
Indexable
<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Routing\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;

use App\Models\User;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/profile';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

	public function login(Request $request)
    {
        $this->validateLogin($request);

        if ($this->hasTooManyLoginAttempts($request)) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

        if($this->guard()->validate($this->credentials($request))) {
            $user = (new User())->get_user_by_email($request->email);

			if($user->email_verified_at && Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
				$redirect = ($user->admin) ? '/crm-dashboard' : $this->redirectPath();
				return response()->json([
					'auth' => auth()->check(),
					'user' => $user,
					'intended' => $redirect,
				]);
			} else {
				$this->incrementLoginAttempts($request);
				return response()->json([
					'errors' => ['email' => 'This account is not activated.']
				], 401);
			}

        } else {
            // dd('ok');
            $this->incrementLoginAttempts($request);
            return response()->json([
                'errors' => ['email' => 'Credentials do not match our database.']
            ], 401);
        }
    }

	protected function authenticated(\Illuminate\Http\Request $request, $user) {
		if ($request->ajax()){

			return response()->json([
				'auth' => auth()->check(),
				'user' => $user,
				'intended' => $this->redirectPath(),
			]);

		}
	}
}
Editor is loading...