Skip to content

Commit dcf9573

Browse files
Merge pull request #9 from stivenm0/main
Fix access control in menu and routes
2 parents 79e7a66 + 1074328 commit dcf9573

File tree

12 files changed

+104
-50
lines changed

12 files changed

+104
-50
lines changed

src/Console/InstallCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ public function handle(): int
3636

3737
protected function phpBinary(): string
3838
{
39-
return (new PhpExecutableFinder())->find(false) ?: 'php';
39+
return (new PhpExecutableFinder)->find(false) ?: 'php';
4040
}
4141
}

src/Console/PublishLaravelTranslationsCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public function handle(): int
3232

3333
private function publishLang(string $lang): void
3434
{
35-
$filesystem = new Filesystem();
35+
$filesystem = new Filesystem;
3636

3737
$filesystem->copyDirectory(
3838
__DIR__."/../../stubs/lang/{$lang}",

stubs/modules/Acl/Database/Seeders/AclPermissionSeeder.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ private function getPermissions(): array
3939
'Acl: Role - List',
4040

4141
//User/UserIndex.vue
42-
'Acl: User - Manage Roles',
43-
'Acl: User - Manage Permissions',
42+
'Acl: User: Role - Edit',
43+
'Acl: User: Permission - Edit',
4444
'Acl: User - Create',
4545
'Acl: User - Edit',
4646
'Acl: User - Delete',
@@ -56,7 +56,7 @@ private function getPermissions(): array
5656
'Acl: Role - Delete',
5757

5858
//AclRolePermission/RolePermissionForm.vue
59-
'Acl: Role - Manage Permissions',
59+
'Acl: Role: Permission - Edit',
6060
];
6161

6262
}

stubs/modules/Acl/routes/app.php

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,76 +16,94 @@
1616
//acl - permission
1717
Route::get('acl-permission', [
1818
PermissionController::class, 'index',
19-
])->name('aclPermission.index');
19+
])->name('aclPermission.index')
20+
->can('Acl: Permission - List');
2021

2122
Route::get('acl-permission/create', [
2223
PermissionController::class, 'create',
23-
])->name('aclPermission.create');
24+
])->name('aclPermission.create')
25+
->can('Acl: permission - Create');
2426

2527
Route::post('acl-permission', [
2628
PermissionController::class, 'store',
27-
])->name('aclPermission.store');
29+
])->name('aclPermission.store')
30+
->can('Acl: Permission - Create');
2831

2932
Route::get('acl-permission/{id}/edit', [
3033
PermissionController::class, 'edit',
31-
])->name('aclPermission.edit');
34+
])->name('aclPermission.edit')
35+
->can('Acl: Permission - Edit');
3236

3337
Route::put('acl-permission/{id}', [
3438
PermissionController::class, 'update',
35-
])->name('aclPermission.update');
39+
])->name('aclPermission.update')
40+
->can('Acl: Permission - Edit');
3641

3742
Route::delete('acl-permission/{id}', [
3843
PermissionController::class, 'destroy',
39-
])->name('aclPermission.destroy');
44+
])->name('aclPermission.destroy')
45+
->can('Acl: Permission - Delete');
4046

4147
//acl - role
4248
Route::get('acl-role', [
4349
RoleController::class, 'index',
44-
])->name('aclRole.index');
50+
])->name('aclRole.index')
51+
->can('Acl: Role - List');
4552

4653
Route::get('acl-role/create', [
4754
RoleController::class, 'create',
48-
])->name('aclRole.create');
55+
])->name('aclRole.create')
56+
->can('Acl: Role - Create');
4957

5058
Route::post('acl-role', [
5159
RoleController::class, 'store',
52-
])->name('aclRole.store');
60+
])->name('aclRole.store')
61+
->can('Acl: Role - Create');
5362

5463
Route::get('acl-role/{id}/edit', [
5564
RoleController::class, 'edit',
56-
])->name('aclRole.edit');
65+
])->name('aclRole.edit')
66+
->can('Acl: Role - Edit');
5767

5868
Route::put('acl-role/{id}', [
5969
RoleController::class, 'update',
60-
])->name('aclRole.update');
70+
])->name('aclRole.update')
71+
->can('Acl: Role - Edit');
6172

6273
Route::delete('acl-role/{id}', [
6374
RoleController::class, 'destroy',
64-
])->name('aclRole.destroy');
75+
])->name('aclRole.destroy')
76+
->can('Acl: Role - Delete');
6577

6678
//acl - role => permissions
6779
Route::get('acl-role-permission/{id}/edit', [
6880
RolePermissionController::class, 'edit',
69-
])->name('aclRolePermission.edit');
81+
])->name('aclRolePermission.edit')
82+
->can('Acl: Role: Permission - Edit');
7083

7184
Route::put('acl-role-permission/{id}', [
7285
RolePermissionController::class, 'update',
73-
])->name('aclRolePermission.update');
86+
])->name('aclRolePermission.update')
87+
->can('Acl: Role: Permission - Edit');
7488

7589
//acl - user role
7690
Route::get('acl-user-role/{id}/edit', [
7791
UserRoleController::class, 'edit',
78-
])->name('aclUserRole.edit');
92+
])->name('aclUserRole.edit')
93+
->can('Acl: User: Role - Edit');
7994

8095
Route::put('acl-user-role/{id}', [
8196
UserRoleController::class, 'update',
82-
])->name('aclUserRole.update');
97+
])->name('aclUserRole.update')
98+
->can('Acl: User: Role - Edit');
8399

84100
//acl - user => permissions
85101
Route::get('acl-user-permission/{id}/edit', [
86102
UserPermissionController::class, 'edit',
87-
])->name('aclUserPermission.edit');
103+
])->name('aclUserPermission.edit')
104+
->can('Acl: User: Permission - Edit');
88105

89106
Route::put('acl-user-permission/{id}', [
90107
UserPermissionController::class, 'update',
91-
])->name('aclUserPermission.update');
108+
])->name('aclUserPermission.update')
109+
->can('Acl: User: Permission - Edit');

stubs/modules/AdminAuth/Notifications/ResetPassword.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ class ResetPassword extends Notification
1212
*
1313
* @param string $token
1414
*/
15-
public function __construct(public $token)
16-
{
17-
}
15+
public function __construct(public $token) {}
1816

1917
/**
2018
* Get the notification's delivery channels.

stubs/resources/js/Configs/menu.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,30 @@ export default {
55
items: [
66
{
77
label: 'Dashboard',
8-
permission: 'Main Menu: Dashboard',
8+
permission: 'Dashboard',
99
icon: 'ri-dashboard-line',
1010
link: route('dashboard.index')
1111
},
1212

1313
{
1414
label: 'Access Control List',
15-
permission: 'Main Menu: Access Control List',
15+
permission: 'Acl',
1616
children: [
1717
{
1818
label: 'Users',
19-
permission: 'Main Menu: Access Control List: Users - List',
19+
permission: 'Acl: User - List',
2020
icon: 'ri-user-line',
2121
link: route('user.index')
2222
},
2323
{
2424
label: 'Permissions',
25-
permission:
26-
'Main Menu: Access Control List: Permissions - List',
25+
permission: 'Acl: Permission - List',
2726
icon: 'ri-shield-keyhole-line',
2827
link: route('aclPermission.index')
2928
},
3029
{
3130
label: 'Roles',
32-
permission: 'Main Menu: Access Control List: Roles - List',
31+
permission: 'Acl: Role - List',
3332
icon: 'ri-account-box-line',
3433
link: route('aclRole.index')
3534
}

stubs/resources/js/Pages/AclPermission/PermissionIndex.vue

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<AppSectionHeader :title="__('Permissions')" :bread-crumb="breadCrumb">
33
<template #right>
44
<AppButton
5+
v-if="can('Acl: Permission - Create')"
56
class="btn btn-primary"
67
@click="$inertia.visit(route('aclPermission.create'))"
78
>
@@ -33,7 +34,11 @@
3334

3435
<AppDataTableData>
3536
<!-- edit permission -->
36-
<AppTooltip :text="__('Edit Permission')" class="mr-2">
37+
<AppTooltip
38+
v-if="can('Acl: Permission - Edit')"
39+
:text="__('Edit Permission')"
40+
class="mr-2"
41+
>
3742
<AppButton
3843
class="btn btn-icon btn-primary"
3944
@click="
@@ -47,7 +52,10 @@
4752
</AppTooltip>
4853

4954
<!-- delete permission -->
50-
<AppTooltip :text="__('Delete Permission')">
55+
<AppTooltip
56+
v-if="can('Acl: Permission - Delete')"
57+
:text="__('Delete Permission')"
58+
>
5159
<AppButton
5260
class="btn btn-icon btn-destructive"
5361
@click="
@@ -79,6 +87,9 @@
7987

8088
<script setup>
8189
import { ref } from 'vue'
90+
import useAuthCan from '@/Composables/useAuthCan'
91+
92+
const { can } = useAuthCan()
8293
8394
const props = defineProps({
8495
permissions: {

stubs/resources/js/Pages/AclRole/RoleIndex.vue

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<AppSectionHeader :title="__('Roles')" :bread-crumb="breadCrumb">
33
<template #right>
44
<AppButton
5+
v-if="can('Acl: Role - Create')"
56
class="btn btn-primary"
67
@click="$inertia.visit(route('aclRole.create'))"
78
>
@@ -30,7 +31,11 @@
3031

3132
<AppDataTableData>
3233
<!-- role permissions -->
33-
<AppTooltip :text="__('Role Permissions')" class="mr-2">
34+
<AppTooltip
35+
v-if="can('Acl: Role: Permission - Edit')"
36+
:text="__('Role Permissions')"
37+
class="mr-2"
38+
>
3439
<AppButton
3540
class="btn btn-icon btn-primary"
3641
@click="
@@ -44,7 +49,11 @@
4449
</AppTooltip>
4550

4651
<!-- edit role -->
47-
<AppTooltip :text="__('Edit Role')" class="mr-2">
52+
<AppTooltip
53+
v-if="can('Acl: Role - Edit')"
54+
:text="__('Edit Role')"
55+
class="mr-2"
56+
>
4857
<AppButton
4958
class="btn btn-icon btn-primary"
5059
@click="
@@ -58,7 +67,10 @@
5867
</AppTooltip>
5968

6069
<!-- delete role -->
61-
<AppTooltip :text="__('Delete Role')">
70+
<AppTooltip
71+
v-if="can('Acl: Role - Delete')"
72+
:text="__('Delete Role')"
73+
>
6274
<AppButton
6375
class="btn btn-icon btn-destructive"
6476
@click="
@@ -90,6 +102,9 @@
90102

91103
<script setup>
92104
import { ref } from 'vue'
105+
import useAuthCan from '@/Composables/useAuthCan'
106+
107+
const { can } = useAuthCan()
93108
94109
const props = defineProps({
95110
roles: {

stubs/resources/js/Pages/User/UserIndex.vue

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<AppSectionHeader :title="__('Users')" :bread-crumb="breadCrumb">
33
<template #right>
44
<AppButton
5+
v-if="can('Acl: User - Create')"
56
class="btn btn-primary"
67
@click="$inertia.visit(route('user.create'))"
78
>
@@ -34,7 +35,11 @@
3435

3536
<AppDataTableData>
3637
<!-- edit user roles -->
37-
<AppTooltip :text="__('User Roles')" class="mr-2">
38+
<AppTooltip
39+
v-if="can('Acl: User: Role - Edit')"
40+
:text="__('User Roles')"
41+
class="mr-2"
42+
>
3843
<AppButton
3944
class="btn btn-icon btn-primary"
4045
@click="
@@ -48,7 +53,11 @@
4853
</AppTooltip>
4954

5055
<!-- edit user permissions -->
51-
<AppTooltip :text="__('User Permissions')" class="mr-2">
56+
<AppTooltip
57+
v-if="can('Acl: User: Permission - Edit')"
58+
:text="__('User Permissions')"
59+
class="mr-2"
60+
>
5261
<AppButton
5362
class="btn btn-icon btn-primary"
5463
@click="
@@ -62,7 +71,11 @@
6271
</AppTooltip>
6372

6473
<!-- edit user -->
65-
<AppTooltip :text="__('Edit User')" class="mr-2">
74+
<AppTooltip
75+
v-if="can('Acl: User - Edit')"
76+
:text="__('Edit User')"
77+
class="mr-2"
78+
>
6679
<AppButton
6780
class="btn btn-icon btn-primary"
6881
@click="
@@ -74,7 +87,10 @@
7487
</AppTooltip>
7588

7689
<!-- delete user -->
77-
<AppTooltip :text="__('Delete User')">
90+
<AppTooltip
91+
v-if="can('Acl: User - Delete')"
92+
:text="__('Delete User')"
93+
>
7894
<AppButton
7995
class="btn btn-icon btn-destructive"
8096
@click="
@@ -106,6 +122,9 @@
106122

107123
<script setup>
108124
import { ref } from 'vue'
125+
import useAuthCan from '@/Composables/useAuthCan'
126+
127+
const { can } = useAuthCan()
109128
110129
const props = defineProps({
111130
users: {

stubs/site/modules/Index/Models/Index.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,4 @@
44

55
use Modules\Support\Models\SiteModel;
66

7-
class Index extends SiteModel
8-
{
9-
}
7+
class Index extends SiteModel {}

0 commit comments

Comments
 (0)