Style
This commit is contained in:
@@ -2,18 +2,18 @@
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use App\Filament\Resources\PackageResource\Pages;
|
||||
use App\Filament\Resources\PackageResource\RelationManagers;
|
||||
use Filament\Forms;
|
||||
use Filament\Tables;
|
||||
use App\Models\Package;
|
||||
use App\Models\Provider;
|
||||
use App\Models\ProviderPlan;
|
||||
use Filament\Forms;
|
||||
use Filament\Forms\Form;
|
||||
use Filament\Notifications\Notification;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Tables;
|
||||
use Filament\Tables\Table;
|
||||
use App\Models\ProviderPlan;
|
||||
use Filament\Resources\Resource;
|
||||
use Illuminate\Support\HtmlString;
|
||||
use Filament\Notifications\Notification;
|
||||
use App\Filament\Resources\PackageResource\Pages;
|
||||
use App\Filament\Resources\PackageResource\RelationManagers;
|
||||
|
||||
class PackageResource extends Resource
|
||||
{
|
||||
@@ -134,8 +134,8 @@ class PackageResource extends Resource
|
||||
}),
|
||||
Forms\Components\CheckboxList::make("provider_plans")
|
||||
->label(__('Select plans'))
|
||||
->options(fn() => $provider->plans->mapWithKeys(fn(ProviderPlan $providerPlan) => [$providerPlan->id => $providerPlan->label ?? $providerPlan->plan_id])->all())
|
||||
->visible(fn(Forms\Get $get) => $get('select_specific_provider_plans'))
|
||||
->options(fn () => $provider->plans->mapWithKeys(fn (ProviderPlan $providerPlan) => [$providerPlan->id => $providerPlan->label ?? $providerPlan->plan_id])->all())
|
||||
->visible(fn (Forms\Get $get) => $get('select_specific_provider_plans'))
|
||||
->reactive()
|
||||
->bulkToggleable()
|
||||
->columns(2)
|
||||
@@ -170,10 +170,10 @@ class PackageResource extends Resource
|
||||
->color('gray')
|
||||
->disabled(function (Package $record, Forms\Get $get) {
|
||||
$providers = collect($get('providers'))
|
||||
->map(fn(string $id): int => (int)$id)
|
||||
->map(fn (string $id): int => (int)$id)
|
||||
->sort();
|
||||
|
||||
return $record->providers->pluck('id')->map(fn(string $id): int => (int)$id)->sort()->toArray() !== $providers->all();
|
||||
return $record->providers->pluck('id')->map(fn (string $id): int => (int)$id)->sort()->toArray() !== $providers->all();
|
||||
})
|
||||
]),
|
||||
Forms\Components\Placeholder::make('save_warning')
|
||||
@@ -183,10 +183,10 @@ class PackageResource extends Resource
|
||||
$package = $livewire->getRecord();
|
||||
|
||||
$providers = collect($get('providers'))
|
||||
->map(fn(string $id): int => (int)$id)
|
||||
->map(fn (string $id): int => (int)$id)
|
||||
->sort();
|
||||
|
||||
return $package->providers->pluck('id')->map(fn(string $id): int => (int)$id)->sort()->toArray() !== $providers->all();
|
||||
return $package->providers->pluck('id')->map(fn (string $id): int => (int)$id)->sort()->toArray() !== $providers->all();
|
||||
})
|
||||
->hiddenLabel(),
|
||||
])
|
||||
@@ -217,10 +217,10 @@ class PackageResource extends Resource
|
||||
return "Attached to stripe - {$record->price_monthly} {$record->currency}";
|
||||
}),
|
||||
Tables\Columns\TextColumn::make('maximum_sites')
|
||||
->formatStateUsing(fn(int $state) => $state === 0 ? __('Unlimited') : $state)
|
||||
->formatStateUsing(fn (int $state) => $state === 0 ? __('Unlimited') : $state)
|
||||
->label(__('Maximum sites')),
|
||||
Tables\Columns\TextColumn::make('maximum_servers')
|
||||
->formatStateUsing(fn(int $state) => $state === 0 ? __('Unlimited') : $state)
|
||||
->formatStateUsing(fn (int $state) => $state === 0 ? __('Unlimited') : $state)
|
||||
->label(__('Maximum servers')),
|
||||
Tables\Columns\TextColumn::make('users_count')
|
||||
->counts('users'),
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
namespace App\Filament\Resources\PackageResource\Pages;
|
||||
|
||||
use App\Filament\Resources\PackageResource;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
use App\Filament\Resources\PackageResource;
|
||||
|
||||
class EditPackage extends EditRecord
|
||||
{
|
||||
|
||||
@@ -28,10 +28,10 @@ class UsersRelationManager extends RelationManager
|
||||
...$table->getHeaderActions(),
|
||||
Action::make('add_user')
|
||||
->label(__('Add user'))
|
||||
->form(fn(self $livewire) => [
|
||||
->form(fn (self $livewire) => [
|
||||
Select::make('user_id')
|
||||
->label('User')
|
||||
->options(User::orderBy('name')->get()->mapWithKeys(fn(User $user) => [$user->id => $user->name]))
|
||||
->options(User::orderBy('name')->get()->mapWithKeys(fn (User $user) => [$user->id => $user->name]))
|
||||
->preload()
|
||||
->searchable()
|
||||
->required(),
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Server\CreateServerAction;
|
||||
use App\DataTransferObjects\ServerData;
|
||||
use App\Http\Requests\ServerUpdateRequest;
|
||||
use App\Http\Resources\ServerResource;
|
||||
use App\Jobs\Servers\DeleteServer;
|
||||
use App\Models\ProviderPlan;
|
||||
use App\Models\Server;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use App\Models\ProviderPlan;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Jobs\Servers\DeleteServer;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use App\Http\Resources\ServerResource;
|
||||
use App\DataTransferObjects\ServerData;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use App\Actions\Server\CreateServerAction;
|
||||
use App\Http\Requests\ServerUpdateRequest;
|
||||
|
||||
class ServerController extends Controller
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class HasAccessToThisGroup
|
||||
{
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
namespace App\Models;
|
||||
|
||||
use App\Casts\PermissionCast;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
|
||||
class Package extends Model
|
||||
{
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\Pivot;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PackageProvider extends Pivot
|
||||
{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Auth\AuthenticateTwoFactorController;
|
||||
use App\Http\Controllers\Auth\CreatePasswordController;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\DocumentationController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\PageController;
|
||||
use App\Http\Controllers\Profile\ProfileBillingController;
|
||||
use App\Http\Controllers\Profile\ProfileController;
|
||||
use App\Http\Controllers\Profile\ProfileIntegrationController;
|
||||
use App\Http\Controllers\Profile\ProfileSecurityController;
|
||||
use App\Http\Controllers\Profile\ProfileSettingController;
|
||||
use App\Http\Controllers\Profile\TwoFactorAuthentication\ConfirmTwoFactorAuthenticationController;
|
||||
use App\Http\Controllers\Profile\TwoFactorAuthentication\RegenerateRecoveryCodesController;
|
||||
use App\Http\Controllers\Profile\TwoFactorAuthentication\TwoFactorAuthenticationController;
|
||||
use App\Http\Controllers\SiteController;
|
||||
use App\Http\Controllers\SearchController;
|
||||
use App\Http\Controllers\ServerController;
|
||||
use App\Http\Controllers\ServerSettingController;
|
||||
use App\Http\Controllers\SiteAliasController;
|
||||
use App\Http\Controllers\SiteAppController;
|
||||
use App\Http\Controllers\SiteCertificateController;
|
||||
use App\Http\Controllers\SiteController;
|
||||
use App\Http\Controllers\SiteCronjobController;
|
||||
use App\Http\Controllers\SiteDatabaseController;
|
||||
use App\Http\Controllers\SiteDnsController;
|
||||
use App\Http\Controllers\SiteRedirectController;
|
||||
use App\Http\Controllers\SiteSettingController;
|
||||
use App\Http\Controllers\SupportController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\SiteAliasController;
|
||||
use App\Http\Controllers\SiteCronjobController;
|
||||
use App\Http\Controllers\SiteSettingController;
|
||||
use App\Http\Controllers\SiteDatabaseController;
|
||||
use App\Http\Controllers\SiteRedirectController;
|
||||
use App\Http\Controllers\DocumentationController;
|
||||
use App\Http\Controllers\ServerSettingController;
|
||||
use App\Http\Controllers\Profile\ProfileController;
|
||||
use App\Http\Controllers\SiteCertificateController;
|
||||
use App\Http\Controllers\Auth\CreatePasswordController;
|
||||
use App\Http\Controllers\Profile\ProfileBillingController;
|
||||
use App\Http\Controllers\Profile\ProfileSettingController;
|
||||
use App\Http\Controllers\Profile\ProfileSecurityController;
|
||||
use App\Http\Controllers\Auth\AuthenticateTwoFactorController;
|
||||
use App\Http\Controllers\Profile\ProfileIntegrationController;
|
||||
use App\Http\Controllers\Profile\TwoFactorAuthentication\RegenerateRecoveryCodesController;
|
||||
use App\Http\Controllers\Profile\TwoFactorAuthentication\TwoFactorAuthenticationController;
|
||||
use App\Http\Controllers\Profile\TwoFactorAuthentication\ConfirmTwoFactorAuthenticationController;
|
||||
|
||||
Auth::routes();
|
||||
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
<?php
|
||||
|
||||
use App\Mail\Admin\Server\AdminServerCreatedEmail;
|
||||
use App\Models\User;
|
||||
use App\Models\Server;
|
||||
use App\Models\Package;
|
||||
use App\Models\Provider;
|
||||
use App\Models\ProviderPlan;
|
||||
use App\Models\ProviderRegion;
|
||||
use App\Models\Server;
|
||||
use App\Models\User;
|
||||
use Database\Factories\PackageFactory;
|
||||
use function Pest\Laravel\get;
|
||||
use function Pest\Laravel\post;
|
||||
use function Pest\Laravel\actingAs;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use function Pest\Laravel\actingAs;
|
||||
use Database\Factories\PackageFactory;
|
||||
use function Pest\Laravel\assertDatabaseHas;
|
||||
use function Pest\Laravel\get;
|
||||
use function Pest\Laravel\post;
|
||||
use App\Mail\Admin\Server\AdminServerCreatedEmail;
|
||||
|
||||
it('can create a new server', function () {
|
||||
Mail::fake();
|
||||
@@ -42,7 +42,7 @@ it('can create a new server', function () {
|
||||
App::forgetInstance('settings');
|
||||
|
||||
actingAs(
|
||||
$user = User::factory()->withPackage(fn(PackageFactory $factory) => $factory->has(Provider::factory()->withRegion()->withPlan()))->create()
|
||||
$user = User::factory()->withPackage(fn (PackageFactory $factory) => $factory->has(Provider::factory()->withRegion()->withPlan()))->create()
|
||||
);
|
||||
|
||||
$provider = Provider::sole();
|
||||
@@ -74,13 +74,13 @@ it('can create a new server', function () {
|
||||
'database_type' => 'postgresql',
|
||||
]);
|
||||
|
||||
Mail::assertQueued(AdminServerCreatedEmail::class, fn(AdminServerCreatedEmail $mail) => $mail->to[0]['address'] === $adminUsers[0]->email);
|
||||
Mail::assertQueued(AdminServerCreatedEmail::class, fn(AdminServerCreatedEmail $mail) => $mail->to[0]['address'] === $adminUsers[1]->email);
|
||||
Mail::assertQueued(AdminServerCreatedEmail::class, fn (AdminServerCreatedEmail $mail) => $mail->to[0]['address'] === $adminUsers[0]->email);
|
||||
Mail::assertQueued(AdminServerCreatedEmail::class, fn (AdminServerCreatedEmail $mail) => $mail->to[0]['address'] === $adminUsers[1]->email);
|
||||
});
|
||||
|
||||
it('cannot create a server without permissions', function () {
|
||||
actingAs(
|
||||
$user = User::factory()->withPackage(fn(PackageFactory $factory) => $factory->serverPermissions(['create' => false,])->has(Provider::factory()->withRegion()->withPlan()))->create()
|
||||
$user = User::factory()->withPackage(fn (PackageFactory $factory) => $factory->serverPermissions(['create' => false,])->has(Provider::factory()->withRegion()->withPlan()))->create()
|
||||
);
|
||||
|
||||
expect($user->can('create', Server::class))->toBeFalse();
|
||||
|
||||
Reference in New Issue
Block a user