resto-dhepot/app/Http/Controllers/Auths/AuthController.php

143 lines
4.4 KiB
PHP

<?php
namespace App\Http\Controllers\Auths;
use App\Http\Controllers\Controller;
use App\Models\User;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
use Spatie\Permission\Models\Role;
use Symfony\Component\Console\Input\Input;
class AuthController extends Controller
{
/**
* Display a listing of the resource.
*/
public function login()
{
return view('auth.login');
}
public function auth_login(Request $request)
{
// validate
// read more on validation at http://laravel.com/docs/validation
$rules = array(
'email' => 'required|email',
'password' => 'required'
);
$validator = Validator::make($request->all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::to('login')
->withErrors($validator)
->withInput($request->except('password'));
} else {
try {
$user = User::where('email', $request->email)->first();
if (Hash::check($request->password, $user->password)) {
// Set Auth
Auth::login($user);
// Create Session message
Session::flash('login-message', [
'type' => 'success',
'msg' => 'Anda berhasil melakukan Login!'
]);
// redirect
return Redirect::to('/transaksi');
} else {
// Create Session message
Session::flash('message', [
'type' => 'warning',
'msg' => 'Username atau password anda salah!'
]);
// redirect
return Redirect::to('login')->withInput($request->except('password'));
}
} catch (Exception $e) {
// Create Session message
Session::flash('message', [
'type' => 'warning',
'msg' => 'Username atau password anda salah!'
]);
// redirect
return Redirect::to('login')->withInput($request->except('password'));
}
}
}
public function login_proses(Request $request)
{
$validator = Validator::make(
$request->all(),
[
'email' => ['required', 'string', 'email', 'exists:users,email'],
'password' => ['required', 'string'],
],
['email.exists' => 'Akun anda belum terdaftar']
);
$errors = $validator->errors();
$emailErrorMessage = $errors->first('email');
if ($validator->fails()) {
// dd($validator->errors());
Session::flash('message', [
'type' => 'warning',
'msg' => $emailErrorMessage
]);
return Redirect::to('login')->withInput($request->except('password'));
}
try {
if (Auth::attempt($validator->validated(), $request->has('remember_me') ? true : false)) {
Session::flash('login-message', [
'type' => 'success',
'msg' => 'Anda berhasil melakukan Login!'
]);
return redirect()->intended('/transaksi');
}
// Create Session message
Session::flash('message', [
'type' => 'warning',
'msg' => 'Username atau password anda salah!'
]);
// redirect
return Redirect::to('login')->withInput($request->except('password'));
} catch (\Exception $e) {
// Create Session message
Session::flash('message', [
'type' => 'warning',
'msg' => 'Terjadi Kesalahan!'
]);
// redirect
return Redirect::to('login')->withInput($request->except('password'));
}
}
/**
* Logout and back to form login
*/
public function logout()
{
// logout and clear data Auth
Auth::logout();
return Redirect::to('login');
}
}