mirror of
https://github.com/pelican-dev/panel.git
synced 2025-06-29 12:51:08 +02:00
extract conflict handling into trait
This commit is contained in:
parent
4a343f7bcc
commit
0d19867921
@ -3,6 +3,7 @@
|
|||||||
namespace App\Filament\Server\Pages;
|
namespace App\Filament\Server\Pages;
|
||||||
|
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
|
use App\Traits\Filament\BlockAccessInConflict;
|
||||||
use Filament\Facades\Filament;
|
use Filament\Facades\Filament;
|
||||||
use Filament\Forms\Concerns\InteractsWithForms;
|
use Filament\Forms\Concerns\InteractsWithForms;
|
||||||
use Filament\Forms\Form;
|
use Filament\Forms\Form;
|
||||||
@ -14,6 +15,7 @@ use Filament\Pages\Page;
|
|||||||
*/
|
*/
|
||||||
abstract class ServerFormPage extends Page
|
abstract class ServerFormPage extends Page
|
||||||
{
|
{
|
||||||
|
use BlockAccessInConflict;
|
||||||
use InteractsWithFormActions;
|
use InteractsWithFormActions;
|
||||||
use InteractsWithForms;
|
use InteractsWithForms;
|
||||||
|
|
||||||
@ -64,17 +66,4 @@ abstract class ServerFormPage extends Page
|
|||||||
|
|
||||||
return $server;
|
return $server;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: find better way handle server conflict state
|
|
||||||
public static function canAccess(): bool
|
|
||||||
{
|
|
||||||
/** @var Server $server */
|
|
||||||
$server = Filament::getTenant();
|
|
||||||
|
|
||||||
if ($server->isInConflictState()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::canAccess();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ namespace App\Filament\Server\Resources;
|
|||||||
use App\Filament\Server\Resources\AllocationResource\Pages;
|
use App\Filament\Server\Resources\AllocationResource\Pages;
|
||||||
use App\Models\Allocation;
|
use App\Models\Allocation;
|
||||||
use App\Models\Permission;
|
use App\Models\Permission;
|
||||||
use App\Models\Server;
|
use App\Traits\Filament\BlockAccessInConflict;
|
||||||
use App\Traits\Filament\CanCustomizePages;
|
use App\Traits\Filament\CanCustomizePages;
|
||||||
use App\Traits\Filament\CanCustomizeRelations;
|
use App\Traits\Filament\CanCustomizeRelations;
|
||||||
use Filament\Facades\Filament;
|
use Filament\Facades\Filament;
|
||||||
@ -14,6 +14,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
|
|
||||||
class AllocationResource extends Resource
|
class AllocationResource extends Resource
|
||||||
{
|
{
|
||||||
|
use BlockAccessInConflict;
|
||||||
use CanCustomizePages;
|
use CanCustomizePages;
|
||||||
use CanCustomizeRelations;
|
use CanCustomizeRelations;
|
||||||
|
|
||||||
@ -27,19 +28,6 @@ class AllocationResource extends Resource
|
|||||||
|
|
||||||
protected static ?string $navigationIcon = 'tabler-network';
|
protected static ?string $navigationIcon = 'tabler-network';
|
||||||
|
|
||||||
// TODO: find better way handle server conflict state
|
|
||||||
public static function canAccess(): bool
|
|
||||||
{
|
|
||||||
/** @var Server $server */
|
|
||||||
$server = Filament::getTenant();
|
|
||||||
|
|
||||||
if ($server->isInConflictState()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::canAccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function canViewAny(): bool
|
public static function canViewAny(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can(Permission::ACTION_ALLOCATION_READ, Filament::getTenant());
|
return auth()->user()->can(Permission::ACTION_ALLOCATION_READ, Filament::getTenant());
|
||||||
|
@ -6,6 +6,7 @@ use App\Filament\Server\Resources\BackupResource\Pages;
|
|||||||
use App\Models\Backup;
|
use App\Models\Backup;
|
||||||
use App\Models\Permission;
|
use App\Models\Permission;
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
|
use App\Traits\Filament\BlockAccessInConflict;
|
||||||
use App\Traits\Filament\CanCustomizePages;
|
use App\Traits\Filament\CanCustomizePages;
|
||||||
use App\Traits\Filament\CanCustomizeRelations;
|
use App\Traits\Filament\CanCustomizeRelations;
|
||||||
use Filament\Facades\Filament;
|
use Filament\Facades\Filament;
|
||||||
@ -14,6 +15,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
|
|
||||||
class BackupResource extends Resource
|
class BackupResource extends Resource
|
||||||
{
|
{
|
||||||
|
use BlockAccessInConflict;
|
||||||
use CanCustomizePages;
|
use CanCustomizePages;
|
||||||
use CanCustomizeRelations;
|
use CanCustomizeRelations;
|
||||||
|
|
||||||
@ -53,19 +55,6 @@ class BackupResource extends Resource
|
|||||||
: ($count >= $limit * self::WARNING_THRESHOLD ? 'warning' : 'success');
|
: ($count >= $limit * self::WARNING_THRESHOLD ? 'warning' : 'success');
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: find better way handle server conflict state
|
|
||||||
public static function canAccess(): bool
|
|
||||||
{
|
|
||||||
/** @var Server $server */
|
|
||||||
$server = Filament::getTenant();
|
|
||||||
|
|
||||||
if ($server->isInConflictState()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::canAccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function canViewAny(): bool
|
public static function canViewAny(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can(Permission::ACTION_BACKUP_READ, Filament::getTenant());
|
return auth()->user()->can(Permission::ACTION_BACKUP_READ, Filament::getTenant());
|
||||||
|
@ -6,6 +6,7 @@ use App\Filament\Server\Resources\DatabaseResource\Pages;
|
|||||||
use App\Models\Database;
|
use App\Models\Database;
|
||||||
use App\Models\Permission;
|
use App\Models\Permission;
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
|
use App\Traits\Filament\BlockAccessInConflict;
|
||||||
use App\Traits\Filament\CanCustomizePages;
|
use App\Traits\Filament\CanCustomizePages;
|
||||||
use App\Traits\Filament\CanCustomizeRelations;
|
use App\Traits\Filament\CanCustomizeRelations;
|
||||||
use Filament\Facades\Filament;
|
use Filament\Facades\Filament;
|
||||||
@ -14,6 +15,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
|
|
||||||
class DatabaseResource extends Resource
|
class DatabaseResource extends Resource
|
||||||
{
|
{
|
||||||
|
use BlockAccessInConflict;
|
||||||
use CanCustomizePages;
|
use CanCustomizePages;
|
||||||
use CanCustomizeRelations;
|
use CanCustomizeRelations;
|
||||||
|
|
||||||
@ -52,19 +54,6 @@ class DatabaseResource extends Resource
|
|||||||
: ($count >= $limit * self::WARNING_THRESHOLD ? 'warning' : 'success');
|
: ($count >= $limit * self::WARNING_THRESHOLD ? 'warning' : 'success');
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: find better way handle server conflict state
|
|
||||||
public static function canAccess(): bool
|
|
||||||
{
|
|
||||||
/** @var Server $server */
|
|
||||||
$server = Filament::getTenant();
|
|
||||||
|
|
||||||
if ($server->isInConflictState()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::canAccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function canViewAny(): bool
|
public static function canViewAny(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can(Permission::ACTION_DATABASE_READ, Filament::getTenant());
|
return auth()->user()->can(Permission::ACTION_DATABASE_READ, Filament::getTenant());
|
||||||
|
@ -5,7 +5,7 @@ namespace App\Filament\Server\Resources;
|
|||||||
use App\Filament\Server\Resources\FileResource\Pages;
|
use App\Filament\Server\Resources\FileResource\Pages;
|
||||||
use App\Models\File;
|
use App\Models\File;
|
||||||
use App\Models\Permission;
|
use App\Models\Permission;
|
||||||
use App\Models\Server;
|
use App\Traits\Filament\BlockAccessInConflict;
|
||||||
use App\Traits\Filament\CanCustomizePages;
|
use App\Traits\Filament\CanCustomizePages;
|
||||||
use App\Traits\Filament\CanCustomizeRelations;
|
use App\Traits\Filament\CanCustomizeRelations;
|
||||||
use Filament\Facades\Filament;
|
use Filament\Facades\Filament;
|
||||||
@ -14,6 +14,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
|
|
||||||
class FileResource extends Resource
|
class FileResource extends Resource
|
||||||
{
|
{
|
||||||
|
use BlockAccessInConflict;
|
||||||
use CanCustomizePages;
|
use CanCustomizePages;
|
||||||
use CanCustomizeRelations;
|
use CanCustomizeRelations;
|
||||||
|
|
||||||
@ -23,19 +24,6 @@ class FileResource extends Resource
|
|||||||
|
|
||||||
protected static ?string $navigationIcon = 'tabler-files';
|
protected static ?string $navigationIcon = 'tabler-files';
|
||||||
|
|
||||||
// TODO: find better way handle server conflict state
|
|
||||||
public static function canAccess(): bool
|
|
||||||
{
|
|
||||||
/** @var Server $server */
|
|
||||||
$server = Filament::getTenant();
|
|
||||||
|
|
||||||
if ($server->isInConflictState()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::canAccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function canViewAny(): bool
|
public static function canViewAny(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can(Permission::ACTION_FILE_READ, Filament::getTenant());
|
return auth()->user()->can(Permission::ACTION_FILE_READ, Filament::getTenant());
|
||||||
|
@ -7,7 +7,7 @@ use App\Filament\Server\Resources\ScheduleResource\RelationManagers\TasksRelatio
|
|||||||
use App\Helpers\Utilities;
|
use App\Helpers\Utilities;
|
||||||
use App\Models\Permission;
|
use App\Models\Permission;
|
||||||
use App\Models\Schedule;
|
use App\Models\Schedule;
|
||||||
use App\Models\Server;
|
use App\Traits\Filament\BlockAccessInConflict;
|
||||||
use App\Traits\Filament\CanCustomizePages;
|
use App\Traits\Filament\CanCustomizePages;
|
||||||
use App\Traits\Filament\CanCustomizeRelations;
|
use App\Traits\Filament\CanCustomizeRelations;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
@ -29,6 +29,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
|
|
||||||
class ScheduleResource extends Resource
|
class ScheduleResource extends Resource
|
||||||
{
|
{
|
||||||
|
use BlockAccessInConflict;
|
||||||
use CanCustomizePages;
|
use CanCustomizePages;
|
||||||
use CanCustomizeRelations;
|
use CanCustomizeRelations;
|
||||||
|
|
||||||
@ -38,19 +39,6 @@ class ScheduleResource extends Resource
|
|||||||
|
|
||||||
protected static ?string $navigationIcon = 'tabler-clock';
|
protected static ?string $navigationIcon = 'tabler-clock';
|
||||||
|
|
||||||
// TODO: find better way handle server conflict state
|
|
||||||
public static function canAccess(): bool
|
|
||||||
{
|
|
||||||
/** @var Server $server */
|
|
||||||
$server = Filament::getTenant();
|
|
||||||
|
|
||||||
if ($server->isInConflictState()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::canAccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function canViewAny(): bool
|
public static function canViewAny(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can(Permission::ACTION_SCHEDULE_READ, Filament::getTenant());
|
return auth()->user()->can(Permission::ACTION_SCHEDULE_READ, Filament::getTenant());
|
||||||
|
@ -8,6 +8,7 @@ use App\Models\Server;
|
|||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Services\Subusers\SubuserDeletionService;
|
use App\Services\Subusers\SubuserDeletionService;
|
||||||
use App\Services\Subusers\SubuserUpdateService;
|
use App\Services\Subusers\SubuserUpdateService;
|
||||||
|
use App\Traits\Filament\BlockAccessInConflict;
|
||||||
use App\Traits\Filament\CanCustomizePages;
|
use App\Traits\Filament\CanCustomizePages;
|
||||||
use App\Traits\Filament\CanCustomizeRelations;
|
use App\Traits\Filament\CanCustomizeRelations;
|
||||||
use Filament\Facades\Filament;
|
use Filament\Facades\Filament;
|
||||||
@ -31,6 +32,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
|
|
||||||
class UserResource extends Resource
|
class UserResource extends Resource
|
||||||
{
|
{
|
||||||
|
use BlockAccessInConflict;
|
||||||
use CanCustomizePages;
|
use CanCustomizePages;
|
||||||
use CanCustomizeRelations;
|
use CanCustomizeRelations;
|
||||||
|
|
||||||
@ -50,19 +52,6 @@ class UserResource extends Resource
|
|||||||
return (string) $server->subusers->count();
|
return (string) $server->subusers->count();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: find better way handle server conflict state
|
|
||||||
public static function canAccess(): bool
|
|
||||||
{
|
|
||||||
/** @var Server $server */
|
|
||||||
$server = Filament::getTenant();
|
|
||||||
|
|
||||||
if ($server->isInConflictState()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::canAccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function canViewAny(): bool
|
public static function canViewAny(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can(Permission::ACTION_USER_READ, Filament::getTenant());
|
return auth()->user()->can(Permission::ACTION_USER_READ, Filament::getTenant());
|
||||||
|
20
app/Traits/Filament/BlockAccessInConflict.php
Normal file
20
app/Traits/Filament/BlockAccessInConflict.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Traits\Filament;
|
||||||
|
|
||||||
|
use Filament\Facades\Filament;
|
||||||
|
|
||||||
|
trait BlockAccessInConflict
|
||||||
|
{
|
||||||
|
public static function canAccess(): bool
|
||||||
|
{
|
||||||
|
/** @var Server $server */
|
||||||
|
$server = Filament::getTenant();
|
||||||
|
|
||||||
|
if ($server->isInConflictState()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return parent::canAccess();
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user