adding permission checking
This commit is contained in:
@@ -147,7 +147,7 @@ onUnmounted(() => window.removeEventListener('keydown', esc))
|
|||||||
<Card class="bg-gray-50 dark:bg-gray-700 dark:text-gray-100">
|
<Card class="bg-gray-50 dark:bg-gray-700 dark:text-gray-100">
|
||||||
<template #header>
|
<template #header>
|
||||||
<div class="flex items-center space-x-2 p-2 bg-gray-200 dark:bg-gray-800">
|
<div class="flex items-center space-x-2 p-2 bg-gray-200 dark:bg-gray-800">
|
||||||
<ButtonGreen @click.prevent="show">
|
<ButtonGreen v-if="can('create menu')" @click.prevent="show">
|
||||||
<Icon name="plus" />
|
<Icon name="plus" />
|
||||||
<p class="uppercase font-semibold">create</p>
|
<p class="uppercase font-semibold">create</p>
|
||||||
</ButtonGreen>
|
</ButtonGreen>
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ const { menus, edit, destroy, save } = defineProps({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div ref="container" class="flex-none flex items-center rounded-md space-x-1">
|
<div ref="container" class="flex-none flex items-center rounded-md space-x-1">
|
||||||
<Icon @click.prevent="edit(element)" name="edit" class="bg-blue-600 hover:bg-blue-700 px-2 py-1 rounded-md text-sm text-white transition-all cursor-pointer" />
|
<Icon v-if="can('update menu')" @click.prevent="edit(element)" name="edit" class="bg-blue-600 hover:bg-blue-700 px-2 py-1 rounded-md text-sm text-white transition-all cursor-pointer" />
|
||||||
<Icon v-if="element.deleteable" @click.prevent="destroy(element)" name="trash" class="bg-red-600 hover:bg-red-700 px-2 py-1 rounded-md text-sm text-white transition-all cursor-pointer" />
|
<Icon v-if="can('delete menu') && element.deleteable" @click.prevent="destroy(element)" name="trash" class="bg-red-600 hover:bg-red-700 px-2 py-1 rounded-md text-sm text-white transition-all cursor-pointer" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -127,8 +127,8 @@ onUnmounted(() => window.removeEventListener('keydown', esc))
|
|||||||
<p class="uppercase">{{ permission.name }}</p>
|
<p class="uppercase">{{ permission.name }}</p>
|
||||||
|
|
||||||
<div class="flex items-center space-x-1">
|
<div class="flex items-center space-x-1">
|
||||||
<Icon @click.prevent="edit(permission)" name="pen" class="px-2 py-1 rounded cursor-pointer text-white bg-blue-600 hover:bg-blue-700 transition-all" />
|
<Icon v-if="can('update permission')" @click.prevent="edit(permission)" name="pen" class="px-2 py-1 rounded cursor-pointer text-white bg-blue-600 hover:bg-blue-700 transition-all" />
|
||||||
<Icon @click.prevent="destroy(permission)" name="trash" class="px-2 py-1 rounded cursor-pointer text-white bg-red-600 hover:bg-red-700 transition-all" />
|
<Icon v-if="can('delete permission')" @click.prevent="destroy(permission)" name="trash" class="px-2 py-1 rounded cursor-pointer text-white bg-red-600 hover:bg-red-700 transition-all" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -161,12 +161,12 @@ onUnmounted(() => window.removeEventListener('keydown', esc))
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-2 py-1 border dark:border-gray-800">
|
<td class="px-2 py-1 border dark:border-gray-800">
|
||||||
<div class="flex items-center space-x-2">
|
<div class="flex items-center space-x-2">
|
||||||
<ButtonBlue @click.prevent="edit(role, refresh)">
|
<ButtonBlue v-if="can('update role')" @click.prevent="edit(role, refresh)">
|
||||||
<Icon name="edit" />
|
<Icon name="edit" />
|
||||||
<p class="uppercase">edit</p>
|
<p class="uppercase">edit</p>
|
||||||
</ButtonBlue>
|
</ButtonBlue>
|
||||||
|
|
||||||
<ButtonRed @click.prevent="destroy(role, refresh)">
|
<ButtonRed v-if="can('delete role')" @click.prevent="destroy(role, refresh)">
|
||||||
<Icon name="trash" />
|
<Icon name="trash" />
|
||||||
<p class="uppercase">delete</p>
|
<p class="uppercase">delete</p>
|
||||||
</ButtonRed>
|
</ButtonRed>
|
||||||
|
|||||||
@@ -219,12 +219,12 @@ onUnmounted(() => window.removeEventListener('keydown', esc))
|
|||||||
<td class="px-2 py-1 border dark:border-gray-800 uppercase">{{ new Date(user.updated_at).toLocaleString('id') }}</td>
|
<td class="px-2 py-1 border dark:border-gray-800 uppercase">{{ new Date(user.updated_at).toLocaleString('id') }}</td>
|
||||||
<td class="px-2 py-1 border dark:border-gray-800">
|
<td class="px-2 py-1 border dark:border-gray-800">
|
||||||
<div class="flex items-center space-x-2">
|
<div class="flex items-center space-x-2">
|
||||||
<ButtonBlue @click.prevent="edit(user, refresh)">
|
<ButtonBlue v-if="can('update user')" @click.prevent="edit(user, refresh)">
|
||||||
<Icon name="edit" />
|
<Icon name="edit" />
|
||||||
<p class="uppercase">edit</p>
|
<p class="uppercase">edit</p>
|
||||||
</ButtonBlue>
|
</ButtonBlue>
|
||||||
|
|
||||||
<ButtonRed @click.prevent="destroy(user, refresh)">
|
<ButtonRed v-if="can('delete user')" @click.prevent="destroy(user, refresh)">
|
||||||
<Icon name="trash" />
|
<Icon name="trash" />
|
||||||
<p class="uppercase">delete</p>
|
<p class="uppercase">delete</p>
|
||||||
</ButtonRed>
|
</ButtonRed>
|
||||||
|
|||||||
@@ -23,28 +23,28 @@ Route::middleware(['auth:sanctum', config('jetstream.auth_session'), 'verified']
|
|||||||
Route::prefix('/superuser')->name('superuser.')->group(function () {
|
Route::prefix('/superuser')->name('superuser.')->group(function () {
|
||||||
Route::resource('permission', App\Http\Controllers\Superuser\PermissionController::class)->only([
|
Route::resource('permission', App\Http\Controllers\Superuser\PermissionController::class)->only([
|
||||||
'index', 'store', 'update', 'destroy',
|
'index', 'store', 'update', 'destroy',
|
||||||
]);
|
])->middleware(['permission:read permission']);
|
||||||
|
|
||||||
Route::resource('role', App\Http\Controllers\Superuser\RoleController::class)->only([
|
Route::resource('role', App\Http\Controllers\Superuser\RoleController::class)->only([
|
||||||
'index', 'store', 'update', 'destroy',
|
'index', 'store', 'update', 'destroy',
|
||||||
]);
|
])->middleware(['permission:read role']);
|
||||||
|
|
||||||
Route::patch('/role/{role}/detach/{permission}', [App\Http\Controllers\Superuser\RoleController::class, 'detach'])->name('role.detach');
|
Route::patch('/role/{role}/detach/{permission}', [App\Http\Controllers\Superuser\RoleController::class, 'detach'])->name('role.detach')->middleware(['permission:update role']);
|
||||||
|
|
||||||
Route::resource('user', App\Http\Controllers\Superuser\UserController::class)->only([
|
Route::resource('user', App\Http\Controllers\Superuser\UserController::class)->only([
|
||||||
'index', 'store', 'update', 'destroy',
|
'index', 'store', 'update', 'destroy',
|
||||||
]);
|
])->middleware(['permission:read user']);
|
||||||
|
|
||||||
Route::prefix('/user/{user}')->name('user.')->controller(App\Http\Controllers\Superuser\UserController::class)->group(function () {
|
Route::prefix('/user/{user}')->name('user.')->controller(App\Http\Controllers\Superuser\UserController::class)->middleware(['permission:update user'])->group(function () {
|
||||||
Route::patch('/role/{role}/detach', 'detachRole')->name('role.detach');
|
Route::patch('/role/{role}/detach', 'detachRole')->name('role.detach');
|
||||||
Route::patch('/permission/{permission}/detach', 'detachPermission')->name('permission.detach');
|
Route::patch('/permission/{permission}/detach', 'detachPermission')->name('permission.detach');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::patch('/menu/save', [App\Http\Controllers\Superuser\MenuController::class, 'save'])->name('menu.save');
|
Route::patch('/menu/save', [App\Http\Controllers\Superuser\MenuController::class, 'save'])->name('menu.save')->middleware(['permission:update menu']);
|
||||||
Route::resource('menu', App\Http\Controllers\Superuser\MenuController::class)->only([
|
Route::resource('menu', App\Http\Controllers\Superuser\MenuController::class)->only([
|
||||||
'index', 'store', 'update', 'destroy',
|
'index', 'store', 'update', 'destroy',
|
||||||
]);
|
])->middleware(['permission:read menu']);
|
||||||
|
|
||||||
Route::get('/activity/login', [App\Http\Controllers\ActivityController::class, 'login'])->name('activity.login');
|
Route::get('/activity/login', [App\Http\Controllers\ActivityController::class, 'login'])->name('activity.login')->middleware(['permission:read login activity']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user