store/routes/web.php

84 lines
4.1 KiB
PHP

<?php
use App\Enums\Permission;
use App\Http\Controllers\Admin\CategoryController;
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Admin\Hr\EmployeeController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\LogoutController;
use Illuminate\Support\Facades\Route;
Route::inertia('/', 'Welcome')->name('home');
Route::middleware('guest')->group(function () {
Route::get('/auth/login', [LoginController::class, 'index'])->name('login');
Route::post('/auth/login', [LoginController::class, 'store']);
});
Route::middleware(['auth', 'permission:'.Permission::DASHBOARD_VIEW->value])->group(function () {
Route::post('/auth/logout', [LogoutController::class, 'store'])->name('logout');
Route::prefix('admin')->name('admin.')->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index'])
->name('dashboard');
Route::prefix('master')->name('master.')
->middleware('permission:'.Permission::CATEGORIES_VIEW->value)
->group(function () {
Route::prefix('categories')->name('categories.')
->middleware('permission:'.Permission::CATEGORIES_VIEW->value)
->group(function () {
Route::get('/', [CategoryController::class, 'index'])->name('index');
Route::post('/', [CategoryController::class, 'store'])
->middleware('permission:'.Permission::CATEGORIES_CREATE->value)
->name('store');
Route::put('{category}', [CategoryController::class, 'update'])
->middleware('permission:'.Permission::CATEGORIES_UPDATE->value)
->name('update');
Route::delete('{category}', [CategoryController::class, 'destroy'])
->middleware('permission:'.Permission::CATEGORIES_DELETE->value)
->name('destroy');
});
});
Route::prefix('hr')->name('hr.')->middleware('permission:'.Permission::EMPLOYEES_VIEW->value)->group(function () {
Route::prefix('employees')->name('employees.')
->middleware('permission:'.Permission::EMPLOYEES_VIEW->value)
->group(function () {
Route::post('{user}/reset-password', [EmployeeController::class, 'resetPassword'])
->middleware('permission:'.Permission::EMPLOYEES_RESET_PASSWORD->value)
->name('employees.reset-password');
Route::patch('{user}/toggle-status', [EmployeeController::class, 'toggleStatus'])
->middleware('permission:'.Permission::EMPLOYEES_TOGGLE_STATUS->value)
->name('employees.toggle-status');
Route::get('create', [EmployeeController::class, 'create'])
->middleware('permission:'.Permission::EMPLOYEES_CREATE->value)
->name('employees.create');
Route::post('employees', [EmployeeController::class, 'store'])
->middleware('permission:'.Permission::EMPLOYEES_CREATE->value)
->name('employees.store');
Route::get('{user}/edit', [EmployeeController::class, 'edit'])
->middleware('permission:'.Permission::EMPLOYEES_UPDATE->value)
->name('employees.edit');
Route::put('{user}', [EmployeeController::class, 'update'])
->middleware('permission:'.Permission::EMPLOYEES_UPDATE->value)
->name('employees.update');
Route::delete('{user}', [EmployeeController::class, 'destroy'])
->middleware('permission:'.Permission::EMPLOYEES_DELETE->value)
->name('employees.destroy');
Route::get('/', [EmployeeController::class, 'index'])->name('employees.index');
});
});
});
});