Skip to content
This repository was archived by the owner on Mar 12, 2024. It is now read-only.

Commit 1c1aeeb

Browse files
committed
change permissions
1 parent 2840695 commit 1c1aeeb

File tree

6 files changed

+72
-22
lines changed

6 files changed

+72
-22
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
use Illuminate\Support\Facades\Schema;
4+
use Illuminate\Database\Schema\Blueprint;
5+
use Illuminate\Database\Migrations\Migration;
6+
7+
class UpdateMenusTable extends Migration
8+
{
9+
/**
10+
* Run the migrations.
11+
*
12+
* @return void
13+
*/
14+
public function up()
15+
{
16+
Schema::table('menus', function (Blueprint $table) {
17+
$table->string('permission')->after('route')->nullable();
18+
});
19+
}
20+
21+
/**
22+
* Reverse the migrations.
23+
*
24+
* @return void
25+
*/
26+
public function down()
27+
{
28+
Schema::table('menus', function (Blueprint $table) {
29+
$table->dropColumn('permission');
30+
});
31+
}
32+
}

database/seeders/InforceSeeder.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public function run()
2626
DB::table('role_has_permissions')->delete();
2727
DB::table('roles')->delete();
2828

29-
collect([ 'admin', 'user'])->each(function ($name) {
29+
collect(['admin', 'user'])->each(function ($name) {
3030
DB::table('roles')->insert([
3131
'name' => $name,
3232
'guard_name' => 'web'
@@ -37,6 +37,7 @@ public function run()
3737
collect(["customers", "suppliers", "products", "news"])->each(function ($section) use ($sortOrder) {
3838
Menu::create([
3939
'name' => ucfirst($section),
40+
'permission' => 'menu.' . $section,
4041
'sort_order' => $sortOrder++
4142
]);
4243

@@ -56,6 +57,7 @@ public function run()
5657

5758
$usersMenu = Menu::create([
5859
'name' => 'User management',
60+
'permission' => 'menu.user-management',
5961
'sort_order' => $sortOrder++
6062
]);
6163

@@ -68,6 +70,7 @@ public function run()
6870
'parent_id' => $usersMenu->id,
6971
'name' => 'Manage users',
7072
'route' => 'users.index',
73+
'permission' => 'menu.user-management.manage-users',
7174
'sort_order' => $sortOrder++
7275
]);
7376

@@ -80,6 +83,7 @@ public function run()
8083
'parent_id' => $usersMenu->id,
8184
'name' => 'Manage roles',
8285
'route' => 'users.roles',
86+
'permission' => 'menu.user-management.manage-roles',
8387
'sort_order' => $sortOrder++
8488
]);
8589

@@ -92,6 +96,7 @@ public function run()
9296
'parent_id' => $usersMenu->id,
9397
'name' => 'Manage access',
9498
'route' => 'users.access',
99+
'permission' => 'menu.user-management.manage-access',
95100
'sort_order' => $sortOrder++
96101
]);
97102

@@ -102,6 +107,7 @@ public function run()
102107

103108
$devMenu = Menu::create([
104109
'name' => 'Developer menu',
110+
'permission' => 'menu.developer-menu',
105111
'sort_order' => $sortOrder++
106112
]);
107113

@@ -114,6 +120,7 @@ public function run()
114120
'parent_id' => $devMenu->id,
115121
'name' => 'Permissions',
116122
'route' => 'developers.permissions',
123+
'permission' => 'menu.developer-menu.permissions',
117124
'sort_order' => $sortOrder++
118125
]);
119126

@@ -126,6 +133,7 @@ public function run()
126133
'parent_id' => $devMenu->id,
127134
'name' => 'Menus',
128135
'route' => 'developers.menus',
136+
'permission' => 'menu.developer-menu.menus',
129137
'sort_order' => $sortOrder++
130138
]);
131139

@@ -145,13 +153,12 @@ public function run()
145153
$developer->givePermissionTo('menu.developer-menu.permissions');
146154
$developer->givePermissionTo('menu.developer-menu.menus');
147155

148-
$user = User::create(['name' => 'John Doe' , 'email' => 'john@doe.com', 'password' => \Hash::make('password')]);
156+
$user = User::create(['name' => 'John Doe', 'email' => 'john@doe.com', 'password' => \Hash::make('password')]);
149157

150158
User::all()->each(function ($user) {
151159
$user->assignRole('superuser');
152160
});
153161

154162

155-
156163
}
157164
}

resources/views/menu-ui/menu.blade.php

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@
44
@if(!$menu->id) {{ __('New') }} @endif
55
{{ __('Menu') }}
66
@if($menu->id): {{ $menu->name }} @endif
7-
7+
@if($menu->id)
8+
<a href="{{ route('menu') }}" class="float-right bg-blue-500 text-white font-bold uppercase text-xs px-4 py-2 rounded shadow hover:shadow-md outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150" type="button">
9+
+ {{ __('New') }}
10+
</a>
11+
@endif
812
</h2>
13+
14+
915
</x-slot>
1016
<div class="max-w-7xl mx-auto py-10 sm:px-6 lg:px-8">
1117
<x-jet-form-section submit="updateMenu">
@@ -71,15 +77,19 @@
7177

7278
<div class="col-span-6 sm:col-span-4">
7379
<x-jet-label for="permission" value="{{ __('Permission') }}"/>
74-
menu.{{ \Str::slug($menu->name) }}
80+
{{ $menu->permission }}
7581
</div>
76-
@if(empty($menu->parent_id))
7782
<div class="col-span-6 sm:col-span-4">
78-
<x-jet-label for="icon" value="{{ __('Menu icon') }}" />
79-
<x-jet-input id="icon" type="text" class="mt-1 block w-full" wire:model.defer="menu.icon" autocomplete="icon"/>
80-
<x-jet-input-error for="menu.icon" class="mt-2"/>
83+
<x-jet-label for="permission" value="{{ __('Label') }}"/>
84+
__('{{ $menu->name }}')
8185
</div>
82-
@endif
86+
@if(empty($menu->parent_id))
87+
<div class="col-span-6 sm:col-span-4">
88+
<x-jet-label for="icon" value="{{ __('Menu icon') }}"/>
89+
<x-jet-input id="icon" type="text" class="mt-1 block w-full" wire:model.defer="menu.icon" autocomplete="icon"/>
90+
<x-jet-input-error for="menu.icon" class="mt-2"/>
91+
</div>
92+
@endif
8393
</x-slot>
8494
<x-slot name="actions">
8595
<x-jet-action-message class="mr-3" on="saved">

src/Http/Livewire/Menu.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ public function mount(\LLoadoutInforce\Models\Menu $menu)
3030
$prefixInfo = $menu->prefixInfo;
3131
$order = (!($menu->parent) ? $menu->sort_order * 100 : ($prefixInfo['root']->sort_order * 100) + $prefixInfo['count']);
3232
return [
33-
'id' => $menu->id,
34-
'name' => $prefixInfo['name'],
35-
'order' => $order
33+
'id' => $menu->id,
34+
'name' => $prefixInfo['name'],
35+
'order' => $order
3636
];
3737
});
3838
$this->parents = $parents->sortBy('order')->pluck('name', 'id')->toArray();
@@ -55,12 +55,17 @@ public function updateMenu()
5555
$this->validate();
5656
$this->menu->parent_id = $this->menu->parent_id == 0 ? null : $this->menu->parent_id;
5757

58-
Permission::firstOrCreate([
59-
'name' => 'menu.' . \Str::slug($this->menu->name),
60-
'guard_name' => 'web'
61-
]);
58+
if(!$this->menu->permission){
59+
$this->menu->permission = $this->menu->prefixinfo['path'];
60+
Permission::firstOrCreate([
61+
'name' => $this->menu->permission,
62+
'guard_name' => 'web'
63+
]);
64+
65+
}
6266

6367
$this->menu->save();
68+
6469
$this->mount($this->menu);
6570
$this->emit('menuUpdated');
6671
$this->emit('saved');

src/LLoadoutInforceServiceProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ private function publishAssets()
5050
$this->publishes([
5151
__DIR__.'/../database/migrations/create_inforce_tables.php.stub' => base_path('database/migrations/'. date('Y_m_d_His').'_create_inforce_tables.php'),
5252
__DIR__.'/../database/migrations/update_roles_table.php.stub' => base_path('database/migrations/'. date('Y_m_d_His').'_update_roles_table.php'),
53+
__DIR__.'/../database/migrations/update_menus_table.php.stub' => base_path('database/migrations/'. date('Y_m_d_His').'_update_menus_table.php'),
5354
], 'LLoadoutInforce-migrations');
5455

5556
return $this;

src/Models/Menu.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,4 @@ private function countParents($menu, &$count, &$root, &$path)
3939
}
4040
}
4141

42-
public function getPermissionAttribute()
43-
{
44-
return $this->prefixInfo['path'];
45-
}
46-
4742
}

0 commit comments

Comments
 (0)