Initial commit
This commit is contained in:
40
app/Http/Controllers/Auth/ConfirmPasswordController.php
Executable file
40
app/Http/Controllers/Auth/ConfirmPasswordController.php
Executable file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\ConfirmsPasswords;
|
||||
|
||||
class ConfirmPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Confirm Password Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password confirmations and
|
||||
| uses a simple trait to include the behavior. You're free to explore
|
||||
| this trait and override any functions that require customization.
|
||||
|
|
||||
*/
|
||||
|
||||
use ConfirmsPasswords;
|
||||
|
||||
/**
|
||||
* Where to redirect users when the intended url fails.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
}
|
||||
22
app/Http/Controllers/Auth/ForgotPasswordController.php
Executable file
22
app/Http/Controllers/Auth/ForgotPasswordController.php
Executable file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||
|
||||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset emails and
|
||||
| includes a trait which assists in sending these notifications from
|
||||
| your application to your users. Feel free to explore this trait.
|
||||
|
|
||||
*/
|
||||
|
||||
use SendsPasswordResetEmails;
|
||||
}
|
||||
224
app/Http/Controllers/Auth/LoginController.php
Executable file
224
app/Http/Controllers/Auth/LoginController.php
Executable file
@ -0,0 +1,224 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Helper;
|
||||
use App\Models\Users;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
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 = RouteServiceProvider::HOME;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware("guest")->except("logout");
|
||||
}
|
||||
|
||||
public function username()
|
||||
{
|
||||
return "email";
|
||||
}
|
||||
|
||||
public function login(Request $req)
|
||||
{
|
||||
$this->validateLogin($req);
|
||||
|
||||
// If the class is using the ThrottlesLogins trait, we can automatically throttle
|
||||
// the login attempts for this application. We'll key this by the username and
|
||||
// the IP address of the client making these requests into this application.
|
||||
if (
|
||||
method_exists($this, "hasTooManyLoginAttempts") &&
|
||||
$this->hasTooManyLoginAttempts($req)
|
||||
) {
|
||||
$this->fireLockoutEvent($req);
|
||||
|
||||
return $this->sendLockoutResponse($req);
|
||||
}
|
||||
|
||||
if ($this->guard()->validate($this->credentials($req))) {
|
||||
$user = $this->guard()->getLastAttempted();
|
||||
if ($user->dlt != null) {
|
||||
$this->incrementLoginAttempts($req);
|
||||
throw ValidationException::withMessages([
|
||||
$this->username() => [trans("auth.failed")],
|
||||
]);
|
||||
}
|
||||
if ($user->status != Users::STATUS_ACTIVE) {
|
||||
// Increment the failed login attempts and redirect back to the
|
||||
// login form with an error message.
|
||||
$this->incrementLoginAttempts($req);
|
||||
// return redirect()
|
||||
// ->back()
|
||||
// ->withInput($req->only($this->username(), 'remember'))
|
||||
// ->withErrors(['active' => 'You must be active to login.']);
|
||||
throw ValidationException::withMessages([
|
||||
$this->username() => __(
|
||||
"Your account not active, please contact admin."
|
||||
),
|
||||
]);
|
||||
}
|
||||
|
||||
if ($this->attemptLogin($req)) {
|
||||
return $this->sendLoginResponse($req);
|
||||
}
|
||||
}
|
||||
|
||||
// If the login attempt was unsuccessful we will increment the number of attempts
|
||||
// to login and redirect the user back to the login form. Of course, when this
|
||||
// user surpasses their maximum number of attempts they will get locked out.
|
||||
$this->incrementLoginAttempts($req);
|
||||
|
||||
return $this->sendFailedLoginResponse($req);
|
||||
}
|
||||
|
||||
protected function validateLogin(Request $req)
|
||||
{
|
||||
$this->validate($req, [
|
||||
$this->username() => "required|string|email",
|
||||
"password" => "required|string",
|
||||
]);
|
||||
}
|
||||
|
||||
protected function sendLoginResponse(Request $req)
|
||||
{
|
||||
$req->session()->regenerate();
|
||||
|
||||
$this->clearLoginAttempts($req);
|
||||
|
||||
if ($response = $this->authenticated($req, $this->guard()->user())) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
// return $req->wantsJson()
|
||||
// ? new JsonResponse([], 204)
|
||||
// : redirect()->intended($this->redirectPath());
|
||||
// return $req->wantsJson()
|
||||
// ? new JsonResponse([], 204)
|
||||
// : redirect(route('view_dashboard'));
|
||||
|
||||
if ($req->wantsJson()) {
|
||||
return new JsonResponse([], 204);
|
||||
} else {
|
||||
$user = Auth::user();
|
||||
if ($user->role == Users::ROLE_ADMIN) {
|
||||
return redirect(route("view_dashboard"));
|
||||
} elseif ($user->role == Users::ROLE_VENDOR) {
|
||||
return redirect(route("view_dashboard"));
|
||||
} elseif ($user->role == Users::ROLE_CHECKER) {
|
||||
return redirect(route("view_user_checker"));
|
||||
} elseif ($user->role == Users::ROLE_CLIENT_ADMIN) {
|
||||
return redirect(
|
||||
route("view_user_client_transaction_add") . "?rdl=1"
|
||||
);
|
||||
} elseif ($user->role == Users::ROLE_SPECIAL_TRACKING) {
|
||||
return redirect(route("view_dashboard"));
|
||||
} elseif ($user->role == Users::ROLE_FINANCE) {
|
||||
return redirect(route("view_keuangan_payment"));
|
||||
} else {
|
||||
$this->guard()->logout();
|
||||
$req->session()->invalidate();
|
||||
$req->session()->regenerateToken();
|
||||
// return redirect(route('login'));
|
||||
return redirect(route("login"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function logout(Request $req)
|
||||
{
|
||||
$user = Auth::user();
|
||||
if ($user->role == Users::ROLE_ADMIN) {
|
||||
$this->guard()->logout();
|
||||
$req->session()->invalidate();
|
||||
$req->session()->regenerateToken();
|
||||
if ($response = $this->loggedOut($req)) {
|
||||
return $response;
|
||||
}
|
||||
return $req->wantsJson()
|
||||
? new JsonResponse([], 204)
|
||||
: redirect(route("login_admin"));
|
||||
} elseif ($user->role == Users::ROLE_FINANCE) {
|
||||
$this->guard()->logout();
|
||||
$req->session()->invalidate();
|
||||
$req->session()->regenerateToken();
|
||||
if ($response = $this->loggedOut($req)) {
|
||||
return $response;
|
||||
}
|
||||
return $req->wantsJson()
|
||||
? new JsonResponse([], 204)
|
||||
: redirect(route("login_admin"));
|
||||
} elseif ($user->role == Users::ROLE_VENDOR) {
|
||||
$this->guard()->logout();
|
||||
$req->session()->invalidate();
|
||||
$req->session()->regenerateToken();
|
||||
if ($response = $this->loggedOut($req)) {
|
||||
return $response;
|
||||
}
|
||||
return $req->wantsJson()
|
||||
? new JsonResponse([], 204)
|
||||
: redirect(route("login_vendor"));
|
||||
} elseif ($user->role == Users::ROLE_CHECKER) {
|
||||
$this->guard()->logout();
|
||||
$req->session()->invalidate();
|
||||
$req->session()->regenerateToken();
|
||||
if ($response = $this->loggedOut($req)) {
|
||||
return $response;
|
||||
}
|
||||
return $req->wantsJson()
|
||||
? new JsonResponse([], 204)
|
||||
: redirect(route("login_checker"));
|
||||
} elseif ($user->role == Users::ROLE_CLIENT_ADMIN) {
|
||||
$this->guard()->logout();
|
||||
$req->session()->invalidate();
|
||||
$req->session()->regenerateToken();
|
||||
if ($response = $this->loggedOut($req)) {
|
||||
return $response;
|
||||
}
|
||||
return $req->wantsJson()
|
||||
? new JsonResponse([], 204)
|
||||
: redirect(route("login_client"));
|
||||
} elseif ($user->role == Users::ROLE_SPECIAL_TRACKING) {
|
||||
$this->guard()->logout();
|
||||
$req->session()->invalidate();
|
||||
$req->session()->regenerateToken();
|
||||
if ($response = $this->loggedOut($req)) {
|
||||
return $response;
|
||||
}
|
||||
return $req->wantsJson()
|
||||
? new JsonResponse([], 204)
|
||||
: redirect(route("login_admin"));
|
||||
}
|
||||
}
|
||||
}
|
||||
73
app/Http/Controllers/Auth/RegisterController.php
Executable file
73
app/Http/Controllers/Auth/RegisterController.php
Executable file
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use App\User;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles the registration of new users as well as their
|
||||
| validation and creation. By default this controller uses a trait to
|
||||
| provide this functionality without requiring any additional code.
|
||||
|
|
||||
*/
|
||||
|
||||
use RegistersUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after registration.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a validator for an incoming registration request.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\Validation\Validator
|
||||
*/
|
||||
protected function validator(array $data)
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \App\User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
return User::create([
|
||||
'name' => $data['name'],
|
||||
'email' => $data['email'],
|
||||
'password' => Hash::make($data['password']),
|
||||
]);
|
||||
}
|
||||
}
|
||||
30
app/Http/Controllers/Auth/ResetPasswordController.php
Executable file
30
app/Http/Controllers/Auth/ResetPasswordController.php
Executable file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||
|
||||
class ResetPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset requests
|
||||
| and uses a simple trait to include this behavior. You're free to
|
||||
| explore this trait and override any methods you wish to tweak.
|
||||
|
|
||||
*/
|
||||
|
||||
use ResetsPasswords;
|
||||
|
||||
/**
|
||||
* Where to redirect users after resetting their password.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
}
|
||||
42
app/Http/Controllers/Auth/VerificationController.php
Executable file
42
app/Http/Controllers/Auth/VerificationController.php
Executable file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\VerifiesEmails;
|
||||
|
||||
class VerificationController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Email Verification Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling email verification for any
|
||||
| user that recently registered with the application. Emails may also
|
||||
| be re-sent if the user didn't receive the original email message.
|
||||
|
|
||||
*/
|
||||
|
||||
use VerifiesEmails;
|
||||
|
||||
/**
|
||||
* Where to redirect users after verification.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
$this->middleware('signed')->only('verify');
|
||||
$this->middleware('throttle:6,1')->only('verify', 'resend');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user