Skip to content

Commit 52e246b

Browse files
committed
Add device related policies
1 parent 7a0e0fd commit 52e246b

15 files changed

Lines changed: 135 additions & 0 deletions

app/Policies/AccessPointPolicy.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class AccessPointPolicy extends DeviceRelatedPolicy
6+
{
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class AvailabilityPolicy extends DeviceRelatedPolicy
6+
{
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class CefSwitchingPolicy extends DeviceRelatedPolicy
6+
{
7+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
use App\Models\User;
6+
7+
/**
8+
* Shared policy for device-scoped, read-only resources.
9+
*
10+
* Authorization is governed entirely by the global `device` permission set;
11+
* row-level device access is enforced by each model's query scope, not here.
12+
* Concrete per-model policies extend this so Laravel can resolve them by the
13+
* `<Model>Policy` naming convention.
14+
*/
15+
abstract class DeviceRelatedPolicy
16+
{
17+
use ChecksGlobalPermissions;
18+
19+
public function __construct()
20+
{
21+
$this->globalPrefix = 'device';
22+
}
23+
24+
public function viewAny(User $user): bool
25+
{
26+
return $this->hasGlobalPermission($user, 'view')
27+
|| $this->hasGlobalPermission($user, 'viewAll')
28+
|| $this->hasGlobalPermission($user, 'create')
29+
|| $this->hasGlobalPermission($user, 'update')
30+
|| $this->hasGlobalPermission($user, 'delete');
31+
}
32+
33+
public function view(User $user): bool
34+
{
35+
return $this->hasGlobalPermission($user, 'view');
36+
}
37+
}

app/Policies/DiskIoPolicy.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class DiskIoPolicy extends DeviceRelatedPolicy
6+
{
7+
}

app/Policies/IpsecTunnelPolicy.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class IpsecTunnelPolicy extends DeviceRelatedPolicy
6+
{
7+
}

app/Policies/Ipv4AddressPolicy.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class Ipv4AddressPolicy extends DeviceRelatedPolicy
6+
{
7+
}

app/Policies/Ipv4MacPolicy.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class Ipv4MacPolicy extends DeviceRelatedPolicy
6+
{
7+
}

app/Policies/Ipv4NetworkPolicy.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class Ipv4NetworkPolicy extends DeviceRelatedPolicy
6+
{
7+
}

app/Policies/Ipv6AddressPolicy.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace App\Policies;
4+
5+
class Ipv6AddressPolicy extends DeviceRelatedPolicy
6+
{
7+
}

0 commit comments

Comments
 (0)