otentikasi dan otorisasi

This commit is contained in:
Irwan Cahyono 2026-02-22 16:46:44 +07:00
parent b359110c37
commit 5891128b8e
9 changed files with 74 additions and 29 deletions

View File

@ -90,4 +90,14 @@ public function authenticate(Request $request)
'email_username' => ['Email atau username salah.'],
]);
}
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect()->intended('');
}
}

View File

@ -4,11 +4,15 @@
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
class AkselerasiDashboardController extends Controller
{
public function index()
{
if (!Gate::allows('super_admin') && !Gate::allows('admin')) {
abort(403);
}
return view('dashboard.akselerasi');
}
}

View File

@ -4,11 +4,15 @@
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
class HilirisasiDashboardController extends Controller
{
public function index()
{
if (!Gate::allows('super_admin') && !Gate::allows('admin')) {
abort(403);
}
return view('dashboard.hilirisasi');
}
}

View File

@ -4,11 +4,15 @@
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
class KonektivitasDashboardController extends Controller
{
public function index()
{
if (!Gate::allows('super_admin') && !Gate::allows('admin')) {
abort(403);
}
return view('dashboard.konektivitas');
}
}

View File

@ -4,11 +4,15 @@
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
class ResiliensiDashboardController extends Controller
{
public function index()
{
if (!Gate::allows('super_admin') && !Gate::allows('admin')) {
abort(403);
}
return view('dashboard.resiliensi');
}
}

View File

@ -4,11 +4,15 @@
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
class SummaryDashboardController extends Controller
{
public function index()
{
// if (!Gate::allows('super_admin') && !Gate::allows('admin')) {
// abort(403);
// }
return view('dashboard.summary');
}
}

View File

@ -78,6 +78,15 @@
<!-- Page JS -->
<script src="{{ asset('assets/js/dashboards-analytics.js') }}"></script>
<script>
$(document).ready(function() {
$('#logout').on('click', function(e) {
e.preventDefault();
$('#logout-form').submit();
});
});
</script>
@stack('scripts')
</body>
</html>

View File

@ -464,8 +464,8 @@ class="nav-link dropdown-toggle hide-arrow p-0"
</div>
</div>
<div class="flex-grow-1">
<h6 class="mb-0">John Doe</h6>
<small class="text-body-secondary">Admin</small>
<h6 class="mb-0">{{ Auth::user()->name }}</h6>
<small class="text-body-secondary">{{ Auth::user()->email }}</small>
</div>
</div>
</a>
@ -513,11 +513,14 @@ class="nav-link dropdown-toggle hide-arrow p-0"
</li>
<li>
<div class="d-grid px-2 pt-2 pb-1">
<a class="btn btn-sm btn-danger d-flex" href="auth-login-cover.html" target="_blank">
<a class="btn btn-sm btn-danger d-flex" id="logout" href="#" target="_blank">
<small class="align-middle">Logout</small>
<i class="icon-base ti tabler-logout ms-2 icon-14px"></i>
</a>
</div>
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
@csrf
</form>
</li>
</ul>
</li>

View File

@ -3,41 +3,44 @@
use Illuminate\Support\Facades\Route;
//Auth
Route::get('/login', [App\Http\Controllers\AuthController::class, 'login'])->name('auth.login');
Route::get('/register', [App\Http\Controllers\AuthController::class, 'register'])->name('auth.register');
Route::get('/login', [App\Http\Controllers\AuthController::class, 'login'])->name('login');
Route::get('/register', [App\Http\Controllers\AuthController::class, 'register'])->name('register');
Route::post('/create-account', [App\Http\Controllers\AuthController::class, 'createAccount'])->name('auth.createAccount');
Route::patch('/users/{user}/verify', [App\Http\Controllers\AuthController::class, 'verify'])->name('users.verify');
Route::post('/authenticate', [App\Http\Controllers\AuthController::class, 'authenticate'])->name('auth.authenticate');
Route::post('/logout', [App\Http\Controllers\AuthController::class, 'logout'])->name('auth.logout');
Route::post('/logout', [App\Http\Controllers\AuthController::class, 'logout'])->name('logout');
Route::get('/roles', [App\Http\Controllers\UserRoleController::class, 'index'])->name('roles.index');
Route::post('/roles', [App\Http\Controllers\UserRoleController::class, 'store'])->name('roles.store');
Route::delete('/roles/{role}', [App\Http\Controllers\UserRoleController::class, 'destroy'])->name('roles.destroy');
// Route::middleware('auth')->group(function () {
// Home
Route::get('/', [App\Http\Controllers\Web\SummaryDashboardController::class, 'index'])->name('dashboard.summary');
Route::get('/resiliensi', [App\Http\Controllers\Web\ResiliensiDashboardController::class, 'index'])->name('dashboard.resiliensi');
Route::get('/hilirisasi', [App\Http\Controllers\Web\HilirisasiDashboardController::class, 'index'])->name('dashboard.hilirisasi');
Route::get('/konektivitas', [App\Http\Controllers\Web\KonektivitasDashboardController::class, 'index'])->name('dashboard.konektivitas');
Route::get('/akselerasi', [App\Http\Controllers\Web\AkselerasiDashboardController::class, 'index'])->name('dashboard.akselerasi');
Route::middleware('auth')
->group(function () {
// User
Route::get('/users', [App\Http\Controllers\UserController::class, 'index'])->name('users.index');
Route::get('/api/users-list', [App\Http\Controllers\UserController::class, 'getUsers'])->name('api.users.list');
// });
// Home
Route::get('/', [App\Http\Controllers\Web\SummaryDashboardController::class, 'index'])->name('dashboard.summary');
Route::get('/resiliensi', [App\Http\Controllers\Web\ResiliensiDashboardController::class, 'index'])->name('dashboard.resiliensi');
Route::get('/hilirisasi', [App\Http\Controllers\Web\HilirisasiDashboardController::class, 'index'])->name('dashboard.hilirisasi');
Route::get('/konektivitas', [App\Http\Controllers\Web\KonektivitasDashboardController::class, 'index'])->name('dashboard.konektivitas');
Route::get('/akselerasi', [App\Http\Controllers\Web\AkselerasiDashboardController::class, 'index'])->name('dashboard.akselerasi');
// Provinsi
Route::get('/provinsi', [App\Http\Controllers\ProvinsiController::class, 'index'])->name('provinsi.index');
Route::get('/getprovinsi', [App\Http\Controllers\ProvinsiController::class, 'getProvinsi'])->name('provinsi.list');
// User
Route::get('/users', [App\Http\Controllers\UserController::class, 'index'])->name('users.index');
Route::get('/api/users-list', [App\Http\Controllers\UserController::class, 'getUsers'])->name('api.users.list');
// });
// Kabupaten
Route::get('/kabupatenkota', [App\Http\Controllers\KabupatenKotaController::class, 'index'])->name('kabupatenkota.index');
Route::get('/getkabupatenkota', [App\Http\Controllers\KabupatenKotaController::class, 'getKabupatenKota'])->name('kabupatenkota.list');
// Provinsi
Route::get('/provinsi', [App\Http\Controllers\ProvinsiController::class, 'index'])->name('provinsi.index');
Route::get('/getprovinsi', [App\Http\Controllers\ProvinsiController::class, 'getProvinsi'])->name('provinsi.list');
// Kecamatan
Route::get('/kecamatan', [App\Http\Controllers\KecamatanController::class, 'index'])->name('kecamatan.index');
Route::get('/getkecamatan', [App\Http\Controllers\KecamatanController::class, 'getKecamatan'])->name('kecamatan.list');
// Kabupaten
Route::get('/kabupatenkota', [App\Http\Controllers\KabupatenKotaController::class, 'index'])->name('kabupatenkota.index');
Route::get('/getkabupatenkota', [App\Http\Controllers\KabupatenKotaController::class, 'getKabupatenKota'])->name('kabupatenkota.list');
// Kelurahan
Route::get('/desakelurahan', [App\Http\Controllers\KelurahanController::class, 'index'])->name('desakelurahan.index');
Route::get('/getdesakelurahan', [App\Http\Controllers\KelurahanController::class, 'getDesaKelurahan'])->name('desakelurahan.list');
// Kecamatan
Route::get('/kecamatan', [App\Http\Controllers\KecamatanController::class, 'index'])->name('kecamatan.index');
Route::get('/getkecamatan', [App\Http\Controllers\KecamatanController::class, 'getKecamatan'])->name('kecamatan.list');
// Kelurahan
Route::get('/desakelurahan', [App\Http\Controllers\KelurahanController::class, 'index'])->name('desakelurahan.index');
Route::get('/getdesakelurahan', [App\Http\Controllers\KelurahanController::class, 'getDesaKelurahan'])->name('desakelurahan.list');
});