Fix: complete authentication and routing setup for /sidata subpath prefix

This commit is contained in:
2026-08-30 13:19:09 +07:00
parent 2e9257f601
commit 3d7cba88df
2 changed files with 56 additions and 51 deletions
+52 -47
View File
@@ -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');
} }
} }
+1 -1
View File
@@ -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.