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

Commit 83f23b7

Browse files
committed
hide built in permissions and menus for editing
1 parent e1f034e commit 83f23b7

10 files changed

+42
-34
lines changed

database/migrations/create_inforce_tables.php.stub

+2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ class CreateInforceTables extends Migration
1818
$table->bigInteger('parent_id')->nullable();
1919
$table->string('name');
2020
$table->string('route')->nullable();
21+
$table->string('permission')->nullable();
2122
$table->bigInteger('sort_order');
2223
$table->text('icon')->nullable();
24+
$table->boolean('editable')->default(true);
2325
$table->timestamps();
2426
});
2527
}

database/migrations/update_menus_table.php.stub renamed to database/migrations/update_permissions_table.stub

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use Illuminate\Support\Facades\Schema;
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Database\Migrations\Migration;
66

7-
class UpdateMenusTable extends Migration
7+
class UpdatePermissionsTable extends Migration
88
{
99
/**
1010
* Run the migrations.
@@ -13,8 +13,8 @@ class UpdateMenusTable extends Migration
1313
*/
1414
public function up()
1515
{
16-
Schema::table('menus', function (Blueprint $table) {
17-
$table->string('permission')->after('route')->nullable();
16+
Schema::table('permissions', function (Blueprint $table) {
17+
$table->boolean('editable')->default(true);
1818
});
1919
}
2020

@@ -25,8 +25,8 @@ class UpdateMenusTable extends Migration
2525
*/
2626
public function down()
2727
{
28-
Schema::table('menus', function (Blueprint $table) {
29-
$table->dropColumn('permission');
28+
Schema::table('permissions', function (Blueprint $table) {
29+
$table->dropColumn('editable');
3030
});
3131
}
3232
}

database/seeders/InforceSeeder.php

+29-15
Original file line numberDiff line numberDiff line change
@@ -37,93 +37,107 @@ public function run()
3737
]);
3838
});
3939

40-
$sortOrder = 0;
40+
$sortOrder = 999;
4141

4242
$usersMenu = Menu::create([
4343
'name' => 'User management',
4444
'permission' => 'menu.user-management',
45-
'sort_order' => $sortOrder++
45+
'sort_order' => $sortOrder++,
46+
'editable' => false
4647
]);
4748

4849
Permission::create([
4950
'name' => 'menu.user-management',
50-
'guard_name' => 'web'
51+
'guard_name' => 'web',
52+
'editable' => false
5153
]);
5254

5355
Menu::create([
5456
'parent_id' => $usersMenu->id,
5557
'name' => 'Manage users',
5658
'route' => 'users.index',
5759
'permission' => 'menu.user-management.manage-users',
58-
'sort_order' => $sortOrder++
60+
'sort_order' => $sortOrder++,
61+
'editable' => false
5962
]);
6063

6164
Permission::create([
6265
'name' => 'menu.user-management.manage-users',
63-
'guard_name' => 'web'
66+
'guard_name' => 'web',
67+
'editable' => false
6468
]);
6569

6670
Menu::create([
6771
'parent_id' => $usersMenu->id,
6872
'name' => 'Manage roles',
6973
'route' => 'users.roles',
7074
'permission' => 'menu.user-management.manage-roles',
71-
'sort_order' => $sortOrder++
75+
'sort_order' => $sortOrder++,
76+
'editable' => false
7277
]);
7378

7479
Permission::create([
7580
'name' => 'menu.user-management.manage-roles',
76-
'guard_name' => 'web'
81+
'guard_name' => 'web',
82+
'editable' => false
7783
]);
7884

7985
Menu::create([
8086
'parent_id' => $usersMenu->id,
8187
'name' => 'Manage access',
8288
'route' => 'users.access',
8389
'permission' => 'menu.user-management.manage-access',
84-
'sort_order' => $sortOrder++
90+
'sort_order' => $sortOrder++,
91+
'editable' => false
8592
]);
8693

8794
Permission::create([
8895
'name' => 'menu.user-management.manage-access',
89-
'guard_name' => 'web'
96+
'guard_name' => 'web',
97+
'editable' => false
9098
]);
9199

92100
$devMenu = Menu::create([
93101
'name' => 'Developer menu',
94102
'permission' => 'menu.developer-menu',
95-
'sort_order' => $sortOrder++
103+
'sort_order' => $sortOrder++,
104+
'editable' => false
96105
]);
97106

98107
Permission::create([
99108
'name' => 'menu.developer-menu',
100-
'guard_name' => 'web'
109+
'guard_name' => 'web',
110+
'editable' => false
101111
]);
102112

103113
Menu::create([
104114
'parent_id' => $devMenu->id,
105115
'name' => 'Permissions',
106116
'route' => 'developers.permissions',
107117
'permission' => 'menu.developer-menu.permissions',
108-
'sort_order' => $sortOrder++
118+
'sort_order' => $sortOrder++,
119+
'editable' => false
109120
]);
110121

111122
Permission::create([
112123
'name' => 'menu.developer-menu.permissions',
113-
'guard_name' => 'web'
124+
'guard_name' => 'web',
125+
'editable' => false
114126
]);
115127

116128
Menu::create([
117129
'parent_id' => $devMenu->id,
118130
'name' => 'Menus',
119131
'route' => 'developers.menus',
120132
'permission' => 'menu.developer-menu.menus',
121-
'sort_order' => $sortOrder++
133+
'sort_order' => $sortOrder++,
134+
'editable' => false
122135
]);
123136

124137
Permission::create([
125138
'name' => 'menu.developer-menu.menus',
126-
'guard_name' => 'web'
139+
'guard_name' => 'web',
140+
'editable' => false
127141
]);
128142

129143
$developer = Role::create(['name' => 'superuser']);

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<li class="rounded-sm relative px-4 py-2 hover:bg-gray-100">
66
<button class="w-full text-left flex items-center outline-none focus:outline-none">
77
<span class="flex pr-1 flex-1">
8-
@if($showPerks)
8+
@if($showPerks && $menu->editable)
99
<a class="flex" href="{{ route('menu',$__menu->id) }}">
1010
<svg style="height: 10px;margin-top: 4px;margin-right:10px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
1111
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"/>
@@ -25,7 +25,7 @@
2525
</li>
2626
@else
2727
<li class="flex px-3 py-1 hover:bg-gray-100 block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 transition duration-150 ease-in-out">
28-
@if($showPerks)
28+
@if($showPerks && $menu->editable)
2929
<a class="flex" href="{{ route('menu',$__menu->id) }}">
3030
<svg style="height: 10px;margin-top: 4px;margin-right:10px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
3131
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"/>

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<div class="relative text-sm" x-data="{ open: false }">
66
<div class="group inline-block">
77
<i class="absolute top-1.5 -left-3.5 text-gray-500" style="width: 15px;height:15px">{!! $menu->icon !!}</i>
8-
@if($showPerks)
8+
@if($showPerks && $menu->editable)
99
<a class="flex absolute top-1.5 -left-3.5 text-gray-500" href="{{ route('menu',$menu->id) }}">
1010
<svg style="height: 10px;margin-top: 2px;margin-right:10px" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
1111
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"/>

src/Http/Livewire/MenusTable.php

+1-3
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,14 @@ class MenusTable extends DataTableComponent
1717
public function query(): Builder
1818
{
1919
return Menu::query()
20-
->when($this->getFilter('search'), fn ($query, $term) => $query->where('name', 'like', '%'.$term.'%')->orWhere('route', 'like', '%'.$term.'%'));
20+
->when($this->getFilter('search'), fn ($query, $term) => $query->where('name', 'like', '%'.$term.'%')->orWhere('route', 'like', '%'.$term.'%'))->whereEditable(true);
2121

2222
}
2323

2424
public function columns(): array
2525
{
2626

2727
return [
28-
Column::make('ID', 'id')
29-
->sortable(),
3028
Column::make('Name', 'name')
3129
->sortable(),
3230
Column::make('Route', 'route')

src/Http/Livewire/PermissionsTable.php

+1-3
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,13 @@ class PermissionsTable extends DataTableComponent
2020
public function query(): Builder
2121
{
2222
return Permission::query()
23-
->when($this->getFilter('search'), fn ($query, $term) => $query->where('name', 'like', '%'.$term.'%'));
23+
->when($this->getFilter('search'), fn ($query, $term) => $query->where('name', 'like', '%'.$term.'%'))->whereEditable(true);
2424
}
2525

2626
public function columns(): array
2727
{
2828

2929
return [
30-
Column::make('ID', 'id')
31-
->sortable(),
3230
Column::make('Name', 'name')
3331
->sortable(),
3432
];

src/Http/Livewire/RolesTable.php

-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ public function columns(): array
2727
{
2828

2929
return [
30-
Column::make('ID', 'id')
31-
->sortable(),
3230
Column::make('Name', 'name')
3331
->sortable(),
3432
];

src/Http/Livewire/UsersTable.php

-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ public function columns(): array
2828
{
2929

3030
return [
31-
Column::make('ID', 'id')
32-
->sortable(),
3331
Column::make('Name', 'name')
3432
->sortable(),
3533
Column::make('Email', 'email')

src/LLoadoutInforceServiceProvider.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +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'),
53+
__DIR__.'/../database/migrations/update_permissions_table.stub' => base_path('database/migrations/'. date('Y_m_d_His').'_update_permissions_table.php'),
5454
], 'LLoadoutInforce-migrations');
5555

5656
return $this;

0 commit comments

Comments
 (0)