Skip to content

Commit 1074328

Browse files
committed
fix: 🐛 Permission handling and button visibility
Fixed permission issues affecting certain areas of the package and added logic to show or hide a button based on the authenticated user's permissions.
1 parent 4fa61e3 commit 1074328

File tree

12 files changed

+83
-48
lines changed

12 files changed

+83
-48
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: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,94 +17,93 @@
1717
Route::get('acl-permission', [
1818
PermissionController::class, 'index',
1919
])->name('aclPermission.index')
20-
->can('Acl: permission - List');
20+
->can('Acl: Permission - List');
2121

2222
Route::get('acl-permission/create', [
2323
PermissionController::class, 'create',
2424
])->name('aclPermission.create')
25-
->can('Acl: permission - Create');
25+
->can('Acl: permission - Create');
2626

2727
Route::post('acl-permission', [
2828
PermissionController::class, 'store',
2929
])->name('aclPermission.store')
30-
->can('Acl: permission - Create');
30+
->can('Acl: Permission - Create');
3131

3232
Route::get('acl-permission/{id}/edit', [
3333
PermissionController::class, 'edit',
3434
])->name('aclPermission.edit')
35-
->can('Acl: permission - Edit');
35+
->can('Acl: Permission - Edit');
3636

3737
Route::put('acl-permission/{id}', [
3838
PermissionController::class, 'update',
3939
])->name('aclPermission.update')
40-
->can('Acl: permission - Edit');
40+
->can('Acl: Permission - Edit');
4141

4242
Route::delete('acl-permission/{id}', [
4343
PermissionController::class, 'destroy',
4444
])->name('aclPermission.destroy')
45-
->can('Acl: permission - Delete');
45+
->can('Acl: Permission - Delete');
4646

4747
//acl - role
4848
Route::get('acl-role', [
4949
RoleController::class, 'index',
5050
])->name('aclRole.index')
51-
->can('Acl: Role - List');
51+
->can('Acl: Role - List');
5252

5353
Route::get('acl-role/create', [
5454
RoleController::class, 'create',
5555
])->name('aclRole.create')
56-
->can('Acl: Role - Create');
56+
->can('Acl: Role - Create');
5757

5858
Route::post('acl-role', [
5959
RoleController::class, 'store',
6060
])->name('aclRole.store')
61-
->can('Acl: Role - Create');
61+
->can('Acl: Role - Create');
6262

6363
Route::get('acl-role/{id}/edit', [
6464
RoleController::class, 'edit',
6565
])->name('aclRole.edit')
66-
->can('Acl: Role - Edit');
66+
->can('Acl: Role - Edit');
6767

6868
Route::put('acl-role/{id}', [
6969
RoleController::class, 'update',
7070
])->name('aclRole.update')
71-
->can('Acl: Role - Edit');
71+
->can('Acl: Role - Edit');
7272

7373
Route::delete('acl-role/{id}', [
7474
RoleController::class, 'destroy',
7575
])->name('aclRole.destroy')
76-
->can('Acl: Role - Delete');
77-
76+
->can('Acl: Role - Delete');
7877

7978
//acl - role => permissions
8079
Route::get('acl-role-permission/{id}/edit', [
8180
RolePermissionController::class, 'edit',
8281
])->name('aclRolePermission.edit')
83-
->can('Acl: Role - Manage Permissions');
82+
->can('Acl: Role: Permission - Edit');
8483

8584
Route::put('acl-role-permission/{id}', [
8685
RolePermissionController::class, 'update',
8786
])->name('aclRolePermission.update')
88-
->can('Acl: Role - Manage Permissions');
87+
->can('Acl: Role: Permission - Edit');
8988

9089
//acl - user role
9190
Route::get('acl-user-role/{id}/edit', [
9291
UserRoleController::class, 'edit',
9392
])->name('aclUserRole.edit')
94-
->can('Acl: User - Manage Roles');
93+
->can('Acl: User: Role - Edit');
9594

9695
Route::put('acl-user-role/{id}', [
9796
UserRoleController::class, 'update',
9897
])->name('aclUserRole.update')
99-
->can('Acl: User - Manage Roles');
98+
->can('Acl: User: Role - Edit');
10099

101100
//acl - user => permissions
102101
Route::get('acl-user-permission/{id}/edit', [
103102
UserPermissionController::class, 'edit',
104103
])->name('aclUserPermission.edit')
105-
->can('Acl: User - Manage Permissions');
104+
->can('Acl: User: Permission - Edit');
106105

107106
Route::put('acl-user-permission/{id}', [
108107
UserPermissionController::class, 'update',
109108
])->name('aclUserPermission.update')
110-
->can('Acl: User - Manage Permissions');
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: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ 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
},
@@ -22,8 +22,7 @@ export default {
2222
},
2323
{
2424
label: 'Permissions',
25-
permission:
26-
'Acl: Permission - List',
25+
permission: 'Acl: Permission - List',
2726
icon: 'ri-shield-keyhole-line',
2827
link: route('aclPermission.index')
2928
},

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)