From cba00d822c37f78164f42fa0aeda52a8736edb94 Mon Sep 17 00:00:00 2001 From: notCharles Date: Thu, 25 Apr 2024 18:57:21 -0400 Subject: [PATCH] minor fixes for random stuff --- .../Commands/Environment/DatabaseSettingsCommand.php | 2 +- .../Commands/Environment/EmailSettingsCommand.php | 9 +++++---- app/Console/Commands/User/MakeUserCommand.php | 7 ++----- .../DatabaseHostResource/Pages/CreateDatabaseHost.php | 2 ++ app/Filament/Resources/EggResource/Pages/CreateEgg.php | 3 +++ app/Filament/Resources/EggResource/Pages/EditEgg.php | 2 ++ app/Filament/Resources/EggResource/Pages/ListEggs.php | 7 ++++++- .../Resources/MountResource/Pages/CreateMount.php | 2 ++ app/Filament/Resources/UserResource/Pages/EditUser.php | 4 ++-- app/Filament/Resources/UserResource/Pages/ListUsers.php | 1 + .../RelationManagers/ServersRelationManager.php | 1 + app/Policies/EggPolicy.php | 2 +- 12 files changed, 28 insertions(+), 14 deletions(-) diff --git a/app/Console/Commands/Environment/DatabaseSettingsCommand.php b/app/Console/Commands/Environment/DatabaseSettingsCommand.php index b0a209119..ff15e3ecb 100644 --- a/app/Console/Commands/Environment/DatabaseSettingsCommand.php +++ b/app/Console/Commands/Environment/DatabaseSettingsCommand.php @@ -54,7 +54,7 @@ class DatabaseSettingsCommand extends Command $this->output->note('Using the "root" account for MySQL connections is not only highly frowned upon, it is also not allowed by this application. You\'ll need to have created a MySQL user for this software.'); $this->variables['DB_USERNAME'] = $this->option('username') ?? $this->ask( 'Database Username', - config('database.connections.mysql.username', 'panel') + config('database.connections.mysql.username', 'pelican') ); $askForMySQLPassword = true; diff --git a/app/Console/Commands/Environment/EmailSettingsCommand.php b/app/Console/Commands/Environment/EmailSettingsCommand.php index f15ac18ba..15f18b9b0 100644 --- a/app/Console/Commands/Environment/EmailSettingsCommand.php +++ b/app/Console/Commands/Environment/EmailSettingsCommand.php @@ -34,13 +34,14 @@ class EmailSettingsCommand extends Command $this->variables['MAIL_DRIVER'] = $this->option('driver') ?? $this->choice( trans('command/messages.environment.mail.ask_driver'), [ + 'log' => 'Log', 'smtp' => 'SMTP Server', 'sendmail' => 'sendmail Binary', - 'mailgun' => 'Mailgun Transactional Email', - 'mandrill' => 'Mandrill Transactional Email', - 'postmark' => 'Postmark Transactional Email', + 'mailgun' => 'Mailgun', + 'mandrill' => 'Mandrill', + 'postmark' => 'Postmark', ], - config('mail.default', 'smtp') + 'smtp', ); $method = 'setup' . studly_case($this->variables['MAIL_DRIVER']) . 'DriverVariables'; diff --git a/app/Console/Commands/User/MakeUserCommand.php b/app/Console/Commands/User/MakeUserCommand.php index 8f29483b3..53082e324 100644 --- a/app/Console/Commands/User/MakeUserCommand.php +++ b/app/Console/Commands/User/MakeUserCommand.php @@ -11,7 +11,7 @@ class MakeUserCommand extends Command { protected $description = 'Creates a user on the system via the CLI.'; - protected $signature = 'p:user:make {--email=} {--username=} {--name-first=} {--name-last=} {--password=} {--admin=} {--no-password}'; + protected $signature = 'p:user:make {--email=} {--username=} {--password=} {--admin=} {--no-password}'; /** * MakeUserCommand constructor. @@ -40,8 +40,6 @@ class MakeUserCommand extends Command $root_admin = $this->option('admin') ?? $this->confirm(trans('command/messages.user.ask_admin')); $email = $this->option('email') ?? $this->ask(trans('command/messages.user.ask_email')); $username = $this->option('username') ?? $this->ask(trans('command/messages.user.ask_username')); - $name_first = $this->option('name-first') ?? $this->ask(trans('command/messages.user.ask_name_first')); - $name_last = $this->option('name-last') ?? $this->ask(trans('command/messages.user.ask_name_last')); if (is_null($password = $this->option('password')) && !$this->option('no-password')) { $this->warn(trans('command/messages.user.ask_password_help')); @@ -49,12 +47,11 @@ class MakeUserCommand extends Command $password = $this->secret(trans('command/messages.user.ask_password')); } - $user = $this->creationService->handle(compact('email', 'username', 'name_first', 'name_last', 'password', 'root_admin')); + $user = $this->creationService->handle(compact('email', 'username', 'password', 'root_admin')); $this->table(['Field', 'Value'], [ ['UUID', $user->uuid], ['Email', $user->email], ['Username', $user->username], - ['Name', $user->name], ['Admin', $user->root_admin ? 'Yes' : 'No'], ]); diff --git a/app/Filament/Resources/DatabaseHostResource/Pages/CreateDatabaseHost.php b/app/Filament/Resources/DatabaseHostResource/Pages/CreateDatabaseHost.php index ed8b2fa93..b4264aa6b 100644 --- a/app/Filament/Resources/DatabaseHostResource/Pages/CreateDatabaseHost.php +++ b/app/Filament/Resources/DatabaseHostResource/Pages/CreateDatabaseHost.php @@ -14,6 +14,8 @@ class CreateDatabaseHost extends CreateRecord protected ?string $heading = 'Database Hosts'; + protected static bool $canCreateAnother = false; + protected ?string $subheading = '(database servers that can have individual databases)'; public function form(Form $form): Form diff --git a/app/Filament/Resources/EggResource/Pages/CreateEgg.php b/app/Filament/Resources/EggResource/Pages/CreateEgg.php index cdb18c6fe..01a7e7b3d 100644 --- a/app/Filament/Resources/EggResource/Pages/CreateEgg.php +++ b/app/Filament/Resources/EggResource/Pages/CreateEgg.php @@ -11,6 +11,8 @@ use Filament\Forms\Form; class CreateEgg extends CreateRecord { protected static string $resource = EggResource::class; + + protected static bool $canCreateAnother = false; public function form(Form $form): Form { return $form @@ -44,6 +46,7 @@ class CreateEgg extends CreateRecord ->required() ->helperText('The default startup command that should be used for new servers using this Egg.'), Forms\Components\TagsInput::make('file_denylist') + ->hidden() // latest wings broke it ->placeholder('denied-file.txt') ->helperText('A list of files that the end user is not allowed to edit.') ->columnSpan(['default' => 1, 'sm' => 1, 'md' => 2, 'lg' => 2]), diff --git a/app/Filament/Resources/EggResource/Pages/EditEgg.php b/app/Filament/Resources/EggResource/Pages/EditEgg.php index 2753e91ae..907cdb0e8 100644 --- a/app/Filament/Resources/EggResource/Pages/EditEgg.php +++ b/app/Filament/Resources/EggResource/Pages/EditEgg.php @@ -46,6 +46,7 @@ class EditEgg extends EditRecord ->required() ->helperText('The default startup command that should be used for new servers using this Egg.'), Forms\Components\TagsInput::make('file_denylist') + ->hidden() // latest wings breaks it. ->placeholder('denied-file.txt') ->helperText('A list of files that the end user is not allowed to edit.') ->columnSpan(['default' => 1, 'sm' => 1, 'md' => 2, 'lg' => 2]), @@ -161,6 +162,7 @@ class EditEgg extends EditRecord ->default('ash'), MonacoEditor::make('script_install') + ->label('Install Script') ->columnSpanFull() ->fontSize('16px') ->language('shell') diff --git a/app/Filament/Resources/EggResource/Pages/ListEggs.php b/app/Filament/Resources/EggResource/Pages/ListEggs.php index 275bc4206..37712346a 100644 --- a/app/Filament/Resources/EggResource/Pages/ListEggs.php +++ b/app/Filament/Resources/EggResource/Pages/ListEggs.php @@ -56,6 +56,11 @@ class ListEggs extends ListRecords ]) ->actions([ Tables\Actions\EditAction::make(), + Tables\Actions\ExportAction::make() + ->icon('tabler-download') + ->label('Export') + // uses old admin panel export service + ->url(fn (Egg $egg): string => route('admin.eggs.export', ['egg' => $egg])), ]) ->headerActions([ // @@ -69,7 +74,7 @@ class ListEggs extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make(), + Actions\CreateAction::make('create')->label('Create Egg'), Actions\Action::make('import') ->label('Import') diff --git a/app/Filament/Resources/MountResource/Pages/CreateMount.php b/app/Filament/Resources/MountResource/Pages/CreateMount.php index 46eca13c0..9ade2e972 100644 --- a/app/Filament/Resources/MountResource/Pages/CreateMount.php +++ b/app/Filament/Resources/MountResource/Pages/CreateMount.php @@ -13,6 +13,8 @@ use Filament\Forms; class CreateMount extends CreateRecord { protected static string $resource = MountResource::class; + + protected static bool $canCreateAnother = false; public function form(Form $form): Form { return $form diff --git a/app/Filament/Resources/UserResource/Pages/EditUser.php b/app/Filament/Resources/UserResource/Pages/EditUser.php index c7cc35de8..caf445640 100644 --- a/app/Filament/Resources/UserResource/Pages/EditUser.php +++ b/app/Filament/Resources/UserResource/Pages/EditUser.php @@ -72,7 +72,7 @@ class EditUser extends EditRecord Actions\Action::make('toggleSuspend') ->hidden(fn (User $user) => $user->servers()->whereNot('status', ServerState::Suspended)->count() === 0) - ->label('Suspend All Servers') + ->label('Suspend Servers') ->color('warning') ->action(function (User $user) { foreach ($user->servers()->whereNot('status', ServerState::Suspended)->get() as $server) { @@ -82,7 +82,7 @@ class EditUser extends EditRecord Actions\Action::make('toggleUnsuspend') ->hidden(fn (User $user) => $user->servers()->where('status', ServerState::Suspended)->count() === 0) - ->label('Unsuspend All Servers') + ->label('Unsuspend Servers') ->color('success') ->action(function (User $user) { foreach ($user->servers()->where('status', ServerState::Suspended)->get() as $server) { diff --git a/app/Filament/Resources/UserResource/Pages/ListUsers.php b/app/Filament/Resources/UserResource/Pages/ListUsers.php index b107748a6..f606bfc9f 100644 --- a/app/Filament/Resources/UserResource/Pages/ListUsers.php +++ b/app/Filament/Resources/UserResource/Pages/ListUsers.php @@ -63,6 +63,7 @@ class ListUsers extends ListRecords ->actions([ Tables\Actions\EditAction::make(), ]) + ->checkIfRecordIsSelectableUsing(fn (User $user) => !$user->servers_count) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), diff --git a/app/Filament/Resources/UserResource/RelationManagers/ServersRelationManager.php b/app/Filament/Resources/UserResource/RelationManagers/ServersRelationManager.php index f79878065..7844c3396 100644 --- a/app/Filament/Resources/UserResource/RelationManagers/ServersRelationManager.php +++ b/app/Filament/Resources/UserResource/RelationManagers/ServersRelationManager.php @@ -22,6 +22,7 @@ class ServersRelationManager extends RelationManager ->searchable(), Tables\Columns\TextColumn::make('name') ->icon('tabler-brand-docker') + ->url(fn (Server $server): string => route('filament.admin.resources.servers.edit', ['record' => $server])) ->searchable() ->sortable(), Tables\Columns\TextColumn::make('node.name') diff --git a/app/Policies/EggPolicy.php b/app/Policies/EggPolicy.php index 9c355ac95..856eeedf6 100644 --- a/app/Policies/EggPolicy.php +++ b/app/Policies/EggPolicy.php @@ -8,6 +8,6 @@ class EggPolicy { public function create(User $user): bool { - return false; + return true; } }