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.'], '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 App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
class AkselerasiDashboardController extends Controller class AkselerasiDashboardController extends Controller
{ {
public function index() public function index()
{ {
if (!Gate::allows('super_admin') && !Gate::allows('admin')) {
abort(403);
}
return view('dashboard.akselerasi'); return view('dashboard.akselerasi');
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

@ -78,6 +78,15 @@
<!-- Page JS --> <!-- Page JS -->
<script src="{{ asset('assets/js/dashboards-analytics.js') }}"></script> <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') @stack('scripts')
</body> </body>
</html> </html>

View File

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

View File

@ -3,41 +3,44 @@
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
//Auth //Auth
Route::get('/login', [App\Http\Controllers\AuthController::class, 'login'])->name('auth.login'); Route::get('/login', [App\Http\Controllers\AuthController::class, 'login'])->name('login');
Route::get('/register', [App\Http\Controllers\AuthController::class, 'register'])->name('auth.register'); 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::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::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('/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::get('/roles', [App\Http\Controllers\UserRoleController::class, 'index'])->name('roles.index');
Route::post('/roles', [App\Http\Controllers\UserRoleController::class, 'store'])->name('roles.store'); 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::delete('/roles/{role}', [App\Http\Controllers\UserRoleController::class, 'destroy'])->name('roles.destroy');
// Route::middleware('auth')->group(function () { Route::middleware('auth')
// Home ->group(function () {
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');
// User // Home
Route::get('/users', [App\Http\Controllers\UserController::class, 'index'])->name('users.index'); Route::get('/', [App\Http\Controllers\Web\SummaryDashboardController::class, 'index'])->name('dashboard.summary');
Route::get('/api/users-list', [App\Http\Controllers\UserController::class, 'getUsers'])->name('api.users.list'); 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 // User
Route::get('/provinsi', [App\Http\Controllers\ProvinsiController::class, 'index'])->name('provinsi.index'); Route::get('/users', [App\Http\Controllers\UserController::class, 'index'])->name('users.index');
Route::get('/getprovinsi', [App\Http\Controllers\ProvinsiController::class, 'getProvinsi'])->name('provinsi.list'); Route::get('/api/users-list', [App\Http\Controllers\UserController::class, 'getUsers'])->name('api.users.list');
// });
// Kabupaten // Provinsi
Route::get('/kabupatenkota', [App\Http\Controllers\KabupatenKotaController::class, 'index'])->name('kabupatenkota.index'); Route::get('/provinsi', [App\Http\Controllers\ProvinsiController::class, 'index'])->name('provinsi.index');
Route::get('/getkabupatenkota', [App\Http\Controllers\KabupatenKotaController::class, 'getKabupatenKota'])->name('kabupatenkota.list'); Route::get('/getprovinsi', [App\Http\Controllers\ProvinsiController::class, 'getProvinsi'])->name('provinsi.list');
// Kecamatan // Kabupaten
Route::get('/kecamatan', [App\Http\Controllers\KecamatanController::class, 'index'])->name('kecamatan.index'); Route::get('/kabupatenkota', [App\Http\Controllers\KabupatenKotaController::class, 'index'])->name('kabupatenkota.index');
Route::get('/getkecamatan', [App\Http\Controllers\KecamatanController::class, 'getKecamatan'])->name('kecamatan.list'); Route::get('/getkabupatenkota', [App\Http\Controllers\KabupatenKotaController::class, 'getKabupatenKota'])->name('kabupatenkota.list');
// Kelurahan // Kecamatan
Route::get('/desakelurahan', [App\Http\Controllers\KelurahanController::class, 'index'])->name('desakelurahan.index'); Route::get('/kecamatan', [App\Http\Controllers\KecamatanController::class, 'index'])->name('kecamatan.index');
Route::get('/getdesakelurahan', [App\Http\Controllers\KelurahanController::class, 'getDesaKelurahan'])->name('desakelurahan.list'); 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');
});