Fix: complete authentication and routing setup for /sidata subpath prefix
This commit is contained in:
@@ -4,21 +4,19 @@ namespace App\Http\Controllers;
|
|||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Session;
|
use Illuminate\Support\Facades\Session;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Models\RoleUser;
|
use App\Models\RoleUser;
|
||||||
use Illuminate\Contracts\Session\Session as SessionSession;
|
|
||||||
|
|
||||||
class AuthController extends Controller
|
class AuthController extends Controller
|
||||||
{
|
{
|
||||||
public function showFormLogin()
|
public function showFormLogin()
|
||||||
{
|
{
|
||||||
if (Auth::check()) {
|
if (Auth::check()) {
|
||||||
// True sekalian session field di users nanti bisa dipanggil via Auth
|
// Jika sudah login, langsung alihkan ke home
|
||||||
// Login Success
|
return redirect()->intended(route('home'));
|
||||||
return redirect()->route('home');
|
|
||||||
}
|
}
|
||||||
return view('login');
|
return view('login');
|
||||||
}
|
}
|
||||||
@@ -26,53 +24,57 @@ class AuthController extends Controller
|
|||||||
public function login(Request $request)
|
public function login(Request $request)
|
||||||
{
|
{
|
||||||
$rules = [
|
$rules = [
|
||||||
'nrk' => 'required|string',
|
'nrk' => 'required|string',
|
||||||
'password' => 'required|string'
|
'password' => 'required|string'
|
||||||
];
|
];
|
||||||
|
|
||||||
$messages = [
|
$messages = [
|
||||||
'nrk.required' => 'NRK wajib diisi',
|
'nrk.required' => 'NRK wajib diisi',
|
||||||
'nrk.string' => 'NRK tidak valid',
|
'nrk.string' => 'NRK tidak valid',
|
||||||
'password.required' => 'Password wajib diisi',
|
'password.required' => 'Password wajib diisi',
|
||||||
'password.string' => 'Password harus berupa string'
|
'password.string' => 'Password harus berupa string'
|
||||||
];
|
];
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), $rules, $messages);
|
$validator = Validator::make($request->all(), $rules, $messages);
|
||||||
|
|
||||||
if($validator->fails()){
|
if ($validator->fails()) {
|
||||||
return redirect()->back()->withErrors($validator)->withInput($request->all);
|
return redirect()->back()->withErrors($validator)->withInput($request->all());
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = [
|
$credentials = [
|
||||||
'nrk' => $request->input('nrk'),
|
'nrk' => $request->input('nrk'),
|
||||||
'password' => $request->input('password'),
|
'password' => $request->input('password'),
|
||||||
];
|
];
|
||||||
|
|
||||||
Auth::attempt($data);
|
if (Auth::attempt($credentials)) {
|
||||||
|
// Cek jika akun terkunci
|
||||||
if (Auth::check()) {
|
if (Auth::user()->status_lock == 1) {
|
||||||
if (Auth::user()->status_lock == 1)
|
|
||||||
{
|
|
||||||
Auth::logout();
|
Auth::logout();
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
Session::flash('eror', 'Data Terkunci Silahkan Hubungi Admin');
|
Session::flash('eror', 'Data Terkunci Silahkan Hubungi Admin');
|
||||||
return redirect()->route('login');
|
return redirect()->route('login');
|
||||||
}
|
}
|
||||||
// True sekalian session field di users nanti bisa dipanggil via Auth
|
|
||||||
// Login Success
|
// Regenerasi session ID untuk keamanan (mencegah Session Fixation)
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
// Set List Tahun Anggaran ke Session
|
||||||
$taValue = [];
|
$taValue = [];
|
||||||
for($i=2022;$i<=date("Y");$i++){
|
for ($i = 2022; $i <= date("Y"); $i++) {
|
||||||
$taValue[] = $i;
|
$taValue[] = $i;
|
||||||
}
|
}
|
||||||
Session::put('listTA', $taValue);
|
Session::put('listTA', $taValue);
|
||||||
return redirect()->route('home');
|
|
||||||
|
// Alihkan ke URL yang dituju atau ke route home bawaan
|
||||||
|
return redirect()->intended(route('home'));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// False
|
// Login Gagal
|
||||||
// Login Fail
|
|
||||||
Session::flash('error', 'NRK atau password salah');
|
Session::flash('error', 'NRK atau password salah');
|
||||||
return redirect()->route('login');
|
return redirect()->route('login');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showFormRegister()
|
public function showFormRegister()
|
||||||
@@ -83,33 +85,32 @@ class AuthController extends Controller
|
|||||||
public function register(Request $request)
|
public function register(Request $request)
|
||||||
{
|
{
|
||||||
$rules = [
|
$rules = [
|
||||||
'name' => 'required|min:3|max:35',
|
'name' => 'required|min:3|max:35',
|
||||||
'nrk' => 'required|min:5|unique:users,nrk',
|
'nrk' => 'required|min:5|unique:users,nrk',
|
||||||
'password' => 'required|confirmed'
|
'password' => 'required|confirmed'
|
||||||
];
|
];
|
||||||
|
|
||||||
$messages = [
|
$messages = [
|
||||||
'name.required' => 'Nama Lengkap wajib diisi',
|
'name.required' => 'Nama Lengkap wajib diisi',
|
||||||
'name.min' => 'Nama lengkap minimal 3 karakter',
|
'name.min' => 'Nama lengkap minimal 3 karakter',
|
||||||
'name.max' => 'Nama lengkap maksimal 35 karakter',
|
'name.max' => 'Nama lengkap maksimal 35 karakter',
|
||||||
'nrk.required' => 'NRK wajib diisi',
|
'nrk.required' => 'NRK wajib diisi',
|
||||||
'nrk.min' => 'NRK tidak valid',
|
'nrk.min' => 'NRK tidak valid',
|
||||||
'nrk.unique' => 'NRK sudah terdaftar',
|
'nrk.unique' => 'NRK sudah terdaftar',
|
||||||
'password.required' => 'Password wajib diisi',
|
'password.required' => 'Password wajib diisi',
|
||||||
'password.confirmed' => 'Password tidak sama dengan konfirmasi password'
|
'password.confirmed' => 'Password tidak sama dengan konfirmasi password'
|
||||||
];
|
];
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), $rules, $messages);
|
$validator = Validator::make($request->all(), $rules, $messages);
|
||||||
|
|
||||||
if($validator->fails()){
|
if ($validator->fails()) {
|
||||||
return redirect()->back()->withErrors($validator)->withInput($request->all);
|
return redirect()->back()->withErrors($validator)->withInput($request->all());
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = new User;
|
$user = new User;
|
||||||
$user->name = ucwords(strtolower($request->name));
|
$user->name = ucwords(strtolower($request->name));
|
||||||
$user->nrk = strtolower($request->nrk);
|
$user->nrk = strtolower($request->nrk);
|
||||||
$user->password = Hash::make($request->password);
|
$user->password = Hash::make($request->password);
|
||||||
// $user->email_verified_at = \Carbon\Carbon::now();
|
|
||||||
$simpan = $user->save();
|
$simpan = $user->save();
|
||||||
|
|
||||||
$roleUser = new RoleUser;
|
$roleUser = new RoleUser;
|
||||||
@@ -117,7 +118,7 @@ class AuthController extends Controller
|
|||||||
$roleUser->user_id = $user->id;
|
$roleUser->user_id = $user->id;
|
||||||
$roleUser->save();
|
$roleUser->save();
|
||||||
|
|
||||||
if($simpan){
|
if ($simpan) {
|
||||||
Session::flash('success', 'Register berhasil! Silahkan login untuk mengakses data');
|
Session::flash('success', 'Register berhasil! Silahkan login untuk mengakses data');
|
||||||
return redirect()->route('login');
|
return redirect()->route('login');
|
||||||
} else {
|
} else {
|
||||||
@@ -126,9 +127,13 @@ class AuthController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function logout()
|
public function logout(Request $request)
|
||||||
{
|
{
|
||||||
Auth::logout(); // menghapus session yang aktif
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
return redirect()->route('login');
|
return redirect()->route('login');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const HOME = '/home';
|
public const HOME = '/sidata/home';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The controller namespace for the application.
|
* The controller namespace for the application.
|
||||||
@@ -60,4 +60,4 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
|
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user