Skip to content

Commit 86d7af7

Browse files
committed
improves permissions types, adds resource
1 parent b8a6887 commit 86d7af7

File tree

4 files changed

+25
-1
lines changed

4 files changed

+25
-1
lines changed

src/App/Enums/Types.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ class Types extends Enum
1010
public const Write = 'Write';
1111
public const Delete = 'Delete';
1212
public const Link = 'Link';
13+
public const Menu = 'Menu';
1314
}

src/App/Http/Resources/Permission.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace LaravelEnso\Permissions\App\Http\Resources;
4+
5+
use Illuminate\Http\Resources\Json\JsonResource;
6+
7+
class Permission extends JsonResource
8+
{
9+
public function toArray($request)
10+
{
11+
return [
12+
'id' => $this->id,
13+
'name' => $this->name,
14+
'description' => $this->description,
15+
'isDefault' => $this->is_default,
16+
'type' => $this->type(),
17+
];
18+
}
19+
}

src/App/Models/Permission.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ public function getTypeAttribute()
4343

4444
public function type()
4545
{
46+
if ($this->relationLoaded('menu') && $this->menu !== null) {
47+
return Types::Menu;
48+
}
49+
4650
return Verbs::get($this->method()) ?? Types::Link;
4751
}
4852

src/App/Tables/Builders/PermissionTable.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class PermissionTable implements Table
1212

1313
public function query(): Builder
1414
{
15-
return Permission::selectRaw('
15+
return Permission::with('menu:permission_id')->selectRaw('
1616
permissions.id, permissions.name, permissions.description,
1717
permissions.created_at, permissions.is_default
1818
');

0 commit comments

Comments
 (0)