feat(middleware): membuat middleware dan memasangnya di routes
This commit is contained in:
parent
150fb6458c
commit
ecf4e23e73
31
app/Http/Middleware/CheckRole.php
Normal file
31
app/Http/Middleware/CheckRole.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class CheckRole
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
||||
*/
|
||||
public function handle(Request $request, Closure $next): Response
|
||||
{
|
||||
|
||||
$roles = array_slice(func_get_args(), 2);
|
||||
|
||||
foreach ($roles as $role) {
|
||||
$user = Auth::user()->role_id;
|
||||
if ($user == $role) {
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
|
||||
return redirect()->route('login');
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Middleware\CheckRole;
|
||||
use Illuminate\Foundation\Application;
|
||||
use Illuminate\Foundation\Configuration\Exceptions;
|
||||
use Illuminate\Foundation\Configuration\Middleware;
|
||||
@ -11,7 +12,9 @@
|
||||
health: '/up',
|
||||
)
|
||||
->withMiddleware(function (Middleware $middleware) {
|
||||
//
|
||||
$middleware->alias([
|
||||
'check_role' => CheckRole::class,
|
||||
]);
|
||||
})
|
||||
->withExceptions(function (Exceptions $exceptions) {
|
||||
//
|
||||
|
||||
154
routes/web.php
154
routes/web.php
@ -21,8 +21,6 @@
|
||||
Route::get('login', [LoginController::class, 'index'])->name('login');
|
||||
Route::post('login', [LoginController::class, 'auth'])->name('auth.login');
|
||||
Route::post('logout', [LoginController::class, 'logout'])->name('auth.logout');
|
||||
|
||||
Route::get('forgot-password', [LoginController::class, 'forgotPassword'])->name('auth.forgot-password');
|
||||
});
|
||||
|
||||
Route::group([
|
||||
@ -30,70 +28,90 @@
|
||||
'prefix' => 'dashboard',
|
||||
], function () {
|
||||
Route::get('overview', [OverviewController::class, 'index'])->name('dashboard.overview');
|
||||
Route::get('analytic', [AnalyticController::class, 'index'])->name('dashboard.analytic');
|
||||
Route::get('analytic/filter', [AnalyticController::class, 'filter'])->name('dashboard.analytic.filter');
|
||||
Route::get('analytic', [AnalyticController::class, 'index'])->name('dashboard.analytic')->middleware('check_role:1,2,3');
|
||||
Route::get('analytic/filter', [AnalyticController::class, 'filter'])->name('dashboard.analytic.filter')->middleware('check_role:1,2,3');
|
||||
|
||||
Route::prefix('master')->group(function () {
|
||||
Route::prefix('barbershop')->group(function () {
|
||||
Route::get('/', [BarbershopController::class, 'index'])->name('master.barbershop');
|
||||
Route::get('create', [BarbershopController::class, 'create'])->name('master.barbershop.create');
|
||||
Route::post('store', [BarbershopController::class, 'store'])->name('master.barbershop.store');
|
||||
Route::get('edit/{barbershop}', [BarbershopController::class, 'edit'])->name('master.barbershop.edit');
|
||||
Route::put('update/{barbershop}', [BarbershopController::class, 'update'])->name('master.barbershop.update');
|
||||
Route::delete('delete/{barbershop}', [BarbershopController::class, 'delete'])->name('master.barbershop.delete');
|
||||
});
|
||||
Route::middleware(['check_role:1,2,3'])->group(function () {
|
||||
Route::prefix('master')->group(function () {
|
||||
Route::prefix('barbershop')->group(function () {
|
||||
Route::get('/', [BarbershopController::class, 'index'])->name('master.barbershop');
|
||||
Route::middleware(['check_role:1,3'])->group(function () {
|
||||
Route::get('create', [BarbershopController::class, 'create'])->name('master.barbershop.create');
|
||||
Route::post('store', [BarbershopController::class, 'store'])->name('master.barbershop.store');
|
||||
Route::get('edit/{barbershop}', [BarbershopController::class, 'edit'])->name('master.barbershop.edit');
|
||||
Route::put('update/{barbershop}', [BarbershopController::class, 'update'])->name('master.barbershop.update');
|
||||
});
|
||||
Route::delete('delete/{barbershop}', [BarbershopController::class, 'delete'])->name('master.barbershop.delete')->middleware('check_role:1');
|
||||
});
|
||||
|
||||
Route::get('/users', [UserController::class, 'index'])->name('master.users');
|
||||
Route::prefix('user')->group(function () {
|
||||
Route::get('create', [UserController::class, 'create'])->name('master.user.create');
|
||||
Route::post('store', [UserController::class, 'store'])->name('master.user.store');
|
||||
Route::get('edit/{user}', [UserController::class, 'edit'])->name('master.user.edit');
|
||||
Route::put('update/{user}', [UserController::class, 'update'])->name('master.user.update');
|
||||
Route::delete('delete/{user}', [UserController::class, 'delete'])->name('master.user.delete');
|
||||
Route::put('reset-password/{user}', [UserController::class, 'resetPassword'])->name('master.user.resetPassword');
|
||||
Route::put('activation/{user}', [UserController::class, 'activation'])->name('master.user.activation');
|
||||
});
|
||||
Route::get('/users', [UserController::class, 'index'])->name('master.users');
|
||||
Route::prefix('user')->group(function () {
|
||||
Route::middleware(['check_role:1,3'])->group(function () {
|
||||
Route::get('create', [UserController::class, 'create'])->name('master.user.create');
|
||||
Route::post('store', [UserController::class, 'store'])->name('master.user.store');
|
||||
Route::get('edit/{user}', [UserController::class, 'edit'])->name('master.user.edit');
|
||||
Route::put('update/{user}', [UserController::class, 'update'])->name('master.user.update');
|
||||
Route::put('reset-password/{user}', [UserController::class, 'resetPassword'])->name('master.user.resetPassword');
|
||||
Route::put('activation/{user}', [UserController::class, 'activation'])->name('master.user.activation');
|
||||
});
|
||||
Route::delete('delete/{user}', [UserController::class, 'delete'])->name('master.user.delete')->middleware('check_role:1');
|
||||
});
|
||||
|
||||
Route::get('/customers', [CustomerController::class, 'index'])->name('master.customers');
|
||||
Route::prefix('customer')->group(function () {
|
||||
Route::post('store', [CustomerController::class, 'store'])->name('master.customer.store');
|
||||
Route::put('update/{customer}', [CustomerController::class, 'update'])->name('master.customer.update');
|
||||
Route::delete('delete/{customer}', [CustomerController::class, 'delete'])->name('master.customer.delete');
|
||||
});
|
||||
Route::get('/customers', [CustomerController::class, 'index'])->name('master.customers');
|
||||
Route::prefix('customer')->group(function () {
|
||||
Route::middleware(['check_role:1,3'])->group(function () {
|
||||
Route::post('store', [CustomerController::class, 'store'])->name('master.customer.store');
|
||||
Route::put('update/{customer}', [CustomerController::class, 'update'])->name('master.customer.update');
|
||||
});
|
||||
Route::delete('delete/{customer}', [CustomerController::class, 'delete'])->name('master.customer.delete')->middleware('check_role:1');
|
||||
});
|
||||
|
||||
Route::get('/services', [ServiceController::class, 'index'])->name('master.services');
|
||||
Route::prefix('service')->group(function () {
|
||||
Route::get('create', [ServiceController::class, 'create'])->name('master.service.create');
|
||||
Route::post('store', [ServiceController::class, 'store'])->name('master.service.store');
|
||||
Route::get('edit/{service}', [ServiceController::class, 'edit'])->name('master.service.edit');
|
||||
Route::put('update/{service}', [ServiceController::class, 'update'])->name('master.service.update');
|
||||
Route::delete('delete/{service}', [ServiceController::class, 'delete'])->name('master.service.delete');
|
||||
Route::get('/services', [ServiceController::class, 'index'])->name('master.services');
|
||||
Route::prefix('service')->group(function () {
|
||||
Route::middleware(['check_role:1,3'])->group(function () {
|
||||
Route::get('create', [ServiceController::class, 'create'])->name('master.service.create');
|
||||
Route::post('store', [ServiceController::class, 'store'])->name('master.service.store');
|
||||
Route::get('edit/{service}', [ServiceController::class, 'edit'])->name('master.service.edit');
|
||||
Route::put('update/{service}', [ServiceController::class, 'update'])->name('master.service.update');
|
||||
});
|
||||
Route::delete('delete/{service}', [ServiceController::class, 'delete'])->name('master.service.delete')->middleware('check_role:1');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Route::prefix('finance')->group(function () {
|
||||
Route::get('/expenses', [ExpenseController::class, 'index'])->name('finance.expenses');
|
||||
Route::prefix('expense')->group(function () {
|
||||
Route::post('store', [ExpenseController::class, 'store'])->name('finance.expense.store');
|
||||
Route::put('update/{expense}', [ExpenseController::class, 'update'])->name('finance.expense.update');
|
||||
Route::delete('delete/{expense}', [ExpenseController::class, 'delete'])->name('finance.expense.delete');
|
||||
Route::middleware(['check_role:1,2,3,4'])->group(function () {
|
||||
Route::get('/expenses', [ExpenseController::class, 'index'])->name('finance.expenses');
|
||||
Route::prefix('expense')->group(function () {
|
||||
Route::middleware(['check_role:1,3,4'])->group(function () {
|
||||
Route::post('store', [ExpenseController::class, 'store'])->name('finance.expense.store');
|
||||
Route::put('update/{expense}', [ExpenseController::class, 'update'])->name('finance.expense.update');
|
||||
});
|
||||
Route::delete('delete/{expense}', [ExpenseController::class, 'delete'])->name('finance.expense.delete')->middleware('check_role:1');
|
||||
});
|
||||
});
|
||||
|
||||
Route::get('/payrolls', [PayrollController::class, 'index'])->name('finance.payrolls');
|
||||
Route::prefix('payroll')->group(function () {
|
||||
Route::get('create', [PayrollController::class, 'create'])->name('finance.payroll.create');
|
||||
Route::post('store', [PayrollController::class, 'store'])->name('finance.payroll.store');
|
||||
Route::get('edit/{payroll}', [PayrollController::class, 'edit'])->name('finance.payroll.edit');
|
||||
Route::put('update/{payroll}', [PayrollController::class, 'update'])->name('finance.payroll.update');
|
||||
Route::delete('delete/{payroll}', [PayrollController::class, 'delete'])->name('finance.payroll.delete');
|
||||
Route::get('get-salary/{employeeId}', [PayrollController::class, 'getSalaryEmployee'])->name('finance.payroll.getSalaryEmployee');
|
||||
Route::middleware(['check_role:1,3,4'])->group(function () {
|
||||
Route::get('create', [PayrollController::class, 'create'])->name('finance.payroll.create');
|
||||
Route::post('store', [PayrollController::class, 'store'])->name('finance.payroll.store');
|
||||
Route::get('edit/{payroll}', [PayrollController::class, 'edit'])->name('finance.payroll.edit');
|
||||
Route::put('update/{payroll}', [PayrollController::class, 'update'])->name('finance.payroll.update');
|
||||
Route::get('get-salary/{employeeId}', [PayrollController::class, 'getSalaryEmployee'])->name('finance.payroll.getSalaryEmployee');
|
||||
});
|
||||
Route::delete('delete/{payroll}', [PayrollController::class, 'delete'])->name('finance.payroll.delete')->middleware('check_role:1');
|
||||
});
|
||||
|
||||
Route::get('/cashes', [CashController::class, 'index'])->name('finance.cashes');
|
||||
Route::prefix('cash')->group(function () {
|
||||
Route::post('store', [CashController::class, 'store'])->name('finance.cash.store');
|
||||
Route::put('update/{cash}', [CashController::class, 'update'])->name('finance.cash.update');
|
||||
Route::delete('delete/{cash}', [CashController::class, 'delete'])->name('finance.cash.delete');
|
||||
Route::middleware(['check_role:1,2,3,4'])->group(function () {
|
||||
Route::get('/cashes', [CashController::class, 'index'])->name('finance.cashes');
|
||||
Route::prefix('cash')->group(function () {
|
||||
Route::middleware(['check_role:1,3,4'])->group(function () {
|
||||
Route::post('store', [CashController::class, 'store'])->name('finance.cash.store');
|
||||
Route::put('update/{cash}', [CashController::class, 'update'])->name('finance.cash.update');
|
||||
});
|
||||
Route::delete('delete/{cash}', [CashController::class, 'delete'])->name('finance.cash.delete')->middleware('check_role:1');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -106,26 +124,32 @@
|
||||
|
||||
Route::get('/transactions', [TransactionController::class, 'index'])->name('manage.transactions');
|
||||
Route::prefix('transaction')->group(function () {
|
||||
Route::get('create', [TransactionController::class, 'create'])->name('manage.transaction.create');
|
||||
Route::post('store', [TransactionController::class, 'store'])->name('manage.transaction.store');
|
||||
Route::get('edit/{transaction}', [TransactionController::class, 'edit'])->name('manage.transaction.edit');
|
||||
Route::put('update/{transaction}', [TransactionController::class, 'update'])->name('manage.transaction.update');
|
||||
Route::delete('delete/{transaction}', [TransactionController::class, 'delete'])->name('manage.transaction.delete');
|
||||
Route::get('get-price/{serviceId}', [TransactionController::class, 'getPrice'])->name('manage.transaction.getPrice');
|
||||
Route::middleware(['check_role:1,3,4'])->group(function () {
|
||||
Route::get('create', [TransactionController::class, 'create'])->name('manage.transaction.create');
|
||||
Route::post('store', [TransactionController::class, 'store'])->name('manage.transaction.store');
|
||||
Route::get('edit/{transaction}', [TransactionController::class, 'edit'])->name('manage.transaction.edit');
|
||||
Route::put('update/{transaction}', [TransactionController::class, 'update'])->name('manage.transaction.update');
|
||||
Route::get('get-price/{serviceId}', [TransactionController::class, 'getPrice'])->name('manage.transaction.getPrice');
|
||||
});
|
||||
Route::delete('delete/{transaction}', [TransactionController::class, 'delete'])->name('manage.transaction.delete')->middleware('check_role:1');
|
||||
});
|
||||
|
||||
Route::get('/inventory', [InventoryController::class, 'index'])->name('manage.inventory');
|
||||
Route::prefix('inventory')->group(function () {
|
||||
Route::post('store', [InventoryController::class, 'store'])->name('manage.inventory.store');
|
||||
Route::put('update/{inventory}', [InventoryController::class, 'update'])->name('manage.inventory.update');
|
||||
Route::delete('delete/{inventory}', [InventoryController::class, 'delete'])->name('manage.inventory.delete');
|
||||
Route::middleware(['check_role:1,2,3'])->group(function () {
|
||||
Route::get('/inventory', [InventoryController::class, 'index'])->name('manage.inventory');
|
||||
Route::prefix('inventory')->group(function () {
|
||||
Route::middleware(['check_role:1,3'])->group(function () {
|
||||
Route::post('store', [InventoryController::class, 'store'])->name('manage.inventory.store');
|
||||
Route::put('update/{inventory}', [InventoryController::class, 'update'])->name('manage.inventory.update');
|
||||
});
|
||||
Route::delete('delete/{inventory}', [InventoryController::class, 'delete'])->name('manage.inventory.delete')->middleware('check_role:1');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Route::prefix('setting')->group(function () {
|
||||
Route::prefix('application')->group(function () {
|
||||
Route::get('/', [ApplicationController::class, 'index'])->name('setting.application');
|
||||
Route::put('update/{application}', [ApplicationController::class, 'update'])->name('setting.application.update');
|
||||
Route::get('/', [ApplicationController::class, 'index'])->name('setting.application')->middleware('check_role:1,3');
|
||||
Route::put('update/{application}', [ApplicationController::class, 'update'])->name('setting.application.update')->middleware('check_role:1,3');
|
||||
});
|
||||
|
||||
Route::prefix('account')->group(function () {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user