Fix allocation policy for admins and update checks (#2090)

This commit is contained in:
Boy132
2026-01-18 22:26:15 +01:00
committed by GitHub
parent adeb1b4217
commit b79511568e
6 changed files with 59 additions and 24 deletions

View File

@@ -3,34 +3,69 @@
namespace App\Policies;
use App\Enums\SubuserPermission;
use App\Models\Server;
use App\Models\User;
use Filament\Facades\Filament;
use Illuminate\Database\Eloquent\Model;
class AllocationPolicy
{
public function viewAny(User $user): bool
{
return $user->can(SubuserPermission::AllocationRead, Filament::getTenant());
use DefaultAdminPolicies {
viewAny as adminViewAny;
view as adminView;
create as adminCreate;
update as adminUpdate;
delete as adminDelete;
deleteAny as adminDeleteAny;
}
public function view(User $user, Model $record): bool
protected string $modelName = 'allocation';
public function viewAny(User $user): bool
{
return $user->can(SubuserPermission::AllocationRead, Filament::getTenant());
/** @var ?Server $server */
$server = Filament::getTenant();
return $server ? $user->can(SubuserPermission::AllocationRead, $server) : $this->adminViewAny($user);
}
public function view(User $user, Model $model): bool
{
/** @var ?Server $server */
$server = Filament::getTenant();
return $server ? $user->can(SubuserPermission::AllocationRead, $server) : $this->adminView($user, $model);
}
public function create(User $user): bool
{
return $user->can(SubuserPermission::AllocationCreate, Filament::getTenant());
/** @var ?Server $server */
$server = Filament::getTenant();
return $server ? $user->can(SubuserPermission::AllocationCreate, $server) : $this->adminCreate($user);
}
public function edit(User $user, Model $record): bool
public function update(User $user, Model $model): bool
{
return $user->can(SubuserPermission::AllocationUpdate, Filament::getTenant());
/** @var ?Server $server */
$server = Filament::getTenant();
return $server ? $user->can(SubuserPermission::AllocationUpdate, $server) : $this->adminUpdate($user, $model);
}
public function delete(User $user, Model $record): bool
public function delete(User $user, Model $model): bool
{
return $user->can(SubuserPermission::AllocationDelete, Filament::getTenant());
/** @var ?Server $server */
$server = Filament::getTenant();
return $server ? $user->can(SubuserPermission::AllocationDelete, $server) : $this->adminDelete($user, $model);
}
public function deleteAny(User $user): bool
{
/** @var ?Server $server */
$server = Filament::getTenant();
return $server ? $user->can(SubuserPermission::AllocationDelete, $server) : $this->adminDeleteAny($user);
}
}

View File

@@ -14,7 +14,7 @@ class BackupPolicy
return $user->can(SubuserPermission::BackupRead, Filament::getTenant());
}
public function view(User $user, Model $record): bool
public function view(User $user, Model $model): bool
{
return $user->can(SubuserPermission::BackupRead, Filament::getTenant());
}
@@ -24,7 +24,7 @@ class BackupPolicy
return $user->can(SubuserPermission::BackupCreate, Filament::getTenant());
}
public function delete(User $user, Model $record): bool
public function delete(User $user, Model $model): bool
{
return $user->can(SubuserPermission::BackupDelete, Filament::getTenant());
}

View File

@@ -14,7 +14,7 @@ class DatabasePolicy
return $user->can(SubuserPermission::DatabaseRead, Filament::getTenant());
}
public function view(User $user, Model $record): bool
public function view(User $user, Model $model): bool
{
return $user->can(SubuserPermission::DatabaseRead, Filament::getTenant());
}
@@ -24,12 +24,12 @@ class DatabasePolicy
return $user->can(SubuserPermission::DatabaseCreate, Filament::getTenant());
}
public function edit(User $user, Model $record): bool
public function update(User $user, Model $model): bool
{
return $user->can(SubuserPermission::DatabaseUpdate, Filament::getTenant());
}
public function delete(User $user, Model $record): bool
public function delete(User $user, Model $model): bool
{
return $user->can(SubuserPermission::DatabaseDelete, Filament::getTenant());
}

View File

@@ -14,7 +14,7 @@ class FilePolicy
return $user->can(SubuserPermission::FileRead, Filament::getTenant());
}
public function view(User $user, Model $record): bool
public function view(User $user, Model $model): bool
{
return $user->can(SubuserPermission::FileReadContent, Filament::getTenant());
}
@@ -24,12 +24,12 @@ class FilePolicy
return $user->can(SubuserPermission::FileCreate, Filament::getTenant());
}
public function edit(User $user, Model $record): bool
public function update(User $user, Model $model): bool
{
return $user->can(SubuserPermission::FileUpdate, Filament::getTenant());
}
public function delete(User $user, Model $record): bool
public function delete(User $user, Model $model): bool
{
return $user->can(SubuserPermission::FileDelete, Filament::getTenant());
}

View File

@@ -14,7 +14,7 @@ class SchedulePolicy
return $user->can(SubuserPermission::ScheduleRead, Filament::getTenant());
}
public function view(User $user, Model $record): bool
public function view(User $user, Model $model): bool
{
return $user->can(SubuserPermission::ScheduleRead, Filament::getTenant());
}
@@ -24,12 +24,12 @@ class SchedulePolicy
return $user->can(SubuserPermission::ScheduleCreate, Filament::getTenant());
}
public function edit(User $user, Model $record): bool
public function update(User $user, Model $model): bool
{
return $user->can(SubuserPermission::ScheduleUpdate, Filament::getTenant());
}
public function delete(User $user, Model $record): bool
public function delete(User $user, Model $model): bool
{
return $user->can(SubuserPermission::ScheduleDelete, Filament::getTenant());
}

View File

@@ -14,7 +14,7 @@ class SubuserPolicy
return $user->can(SubuserPermission::UserRead, Filament::getTenant());
}
public function view(User $user, Model $record): bool
public function view(User $user, Model $model): bool
{
return $user->can(SubuserPermission::UserRead, Filament::getTenant());
}
@@ -24,12 +24,12 @@ class SubuserPolicy
return $user->can(SubuserPermission::UserCreate, Filament::getTenant());
}
public function edit(User $user, Model $record): bool
public function update(User $user, Model $model): bool
{
return $user->can(SubuserPermission::UserUpdate, Filament::getTenant());
}
public function delete(User $user, Model $record): bool
public function delete(User $user, Model $model): bool
{
return $user->can(SubuserPermission::UserDelete, Filament::getTenant());
}