Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php namespace Filament\Pages\Tenancy; use Filament\Actions\Action; use Filament\Action..
Decoded Output download
<?php
namespace Filament\Pages\Tenancy;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Facades\Filament;
use Filament\Forms\Form;
use Filament\Pages\Concerns;
use Filament\Pages\Concerns\InteractsWithFormActions;
use Filament\Pages\SimplePage;
use Filament\Panel;
use Filament\Support\Exceptions\Halt;
use Filament\Support\Facades\FilamentView;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Database\Eloquent\Model;
use Throwable;
use function Filamentuthorize;
use function Filament\Support\is_app_url;
/**
* @property Form $form
*/
abstract class RegisterTenant extends SimplePage
{
use Concerns\CanUseDatabaseTransactions;
use Concerns\HasRoutes;
use InteractsWithFormActions;
/**
* @var view-string
*/
protected static string $view = 'filament-panels::pages.tenancy.register-tenant';
/**
* @var array<string, mixed> | null
*/
public ?array $data = [];
public ?Model $tenant = null;
abstract public static function getLabel(): string;
public static function getRelativeRouteName(): string
{
return 'registration';
}
public static function isTenantSubscriptionRequired(Panel $panel): bool
{
return false;
}
public function mount(): void
{
abort_unless(static::canView(), 404);
$this->form->fill();
}
/**
* @param array<string, mixed> $data
* @return array<string, mixed>
*/
protected function mutateFormDataBeforeRegister(array $data): array
{
return $data;
}
public function register(): void
{
try {
$this->beginDatabaseTransaction();
$this->callHook('beforeValidate');
$data = $this->form->getState();
$this->callHook('afterValidate');
$data = $this->mutateFormDataBeforeRegister($data);
$this->callHook('beforeRegister');
$this->tenant = $this->handleRegistration($data);
$this->form->model($this->tenant)->saveRelationships();
$this->callHook('afterRegister');
$this->commitDatabaseTransaction();
} catch (Halt $exception) {
$exception->shouldRollbackDatabaseTransaction() ?
$this->rollBackDatabaseTransaction() :
$this->commitDatabaseTransaction();
return;
} catch (Throwable $exception) {
$this->rollBackDatabaseTransaction();
throw $exception;
}
if ($redirectUrl = $this->getRedirectUrl()) {
$this->redirect($redirectUrl, navigate: FilamentView::hasSpaMode() && is_app_url($redirectUrl));
}
}
/**
* @param array<string, mixed> $data
*/
protected function handleRegistration(array $data): Model
{
return $this->getModel()::create($data);
}
protected function getRedirectUrl(): ?string
{
return Filament::getUrl($this->tenant);
}
public function form(Form $form): Form
{
return $form;
}
/**
* @return array<int | string, string | Form>
*/
protected function getForms(): array
{
return [
'form' => $this->form(
$this->makeForm()
->model($this->getModel())
->statePath('data'),
),
];
}
public function getModel(): string
{
return Filament::getTenantModel();
}
public function getTitle(): string | Htmlable
{
return static::getLabel();
}
public static function getSlug(): string
{
return static::$slug ?? 'new';
}
public function hasLogo(): bool
{
return false;
}
/**
* @return array<Action | ActionGroup>
*/
protected function getFormActions(): array
{
return [
$this->getRegisterFormAction(),
];
}
public function getRegisterFormAction(): Action
{
return Action::make('register')
->label(static::getLabel())
->submit('register');
}
protected function hasFullWidthFormActions(): bool
{
return true;
}
public static function canView(): bool
{
try {
return authorize('create', Filament::getTenantModel())->allowed();
} catch (AuthorizationException $exception) {
return $exception->toResponse()->allowed();
}
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Filament\Pages\Tenancy;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Facades\Filament;
use Filament\Forms\Form;
use Filament\Pages\Concerns;
use Filament\Pages\Concerns\InteractsWithFormActions;
use Filament\Pages\SimplePage;
use Filament\Panel;
use Filament\Support\Exceptions\Halt;
use Filament\Support\Facades\FilamentView;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Database\Eloquent\Model;
use Throwable;
use function Filament\authorize;
use function Filament\Support\is_app_url;
/**
* @property Form $form
*/
abstract class RegisterTenant extends SimplePage
{
use Concerns\CanUseDatabaseTransactions;
use Concerns\HasRoutes;
use InteractsWithFormActions;
/**
* @var view-string
*/
protected static string $view = 'filament-panels::pages.tenancy.register-tenant';
/**
* @var array<string, mixed> | null
*/
public ?array $data = [];
public ?Model $tenant = null;
abstract public static function getLabel(): string;
public static function getRelativeRouteName(): string
{
return 'registration';
}
public static function isTenantSubscriptionRequired(Panel $panel): bool
{
return false;
}
public function mount(): void
{
abort_unless(static::canView(), 404);
$this->form->fill();
}
/**
* @param array<string, mixed> $data
* @return array<string, mixed>
*/
protected function mutateFormDataBeforeRegister(array $data): array
{
return $data;
}
public function register(): void
{
try {
$this->beginDatabaseTransaction();
$this->callHook('beforeValidate');
$data = $this->form->getState();
$this->callHook('afterValidate');
$data = $this->mutateFormDataBeforeRegister($data);
$this->callHook('beforeRegister');
$this->tenant = $this->handleRegistration($data);
$this->form->model($this->tenant)->saveRelationships();
$this->callHook('afterRegister');
$this->commitDatabaseTransaction();
} catch (Halt $exception) {
$exception->shouldRollbackDatabaseTransaction() ?
$this->rollBackDatabaseTransaction() :
$this->commitDatabaseTransaction();
return;
} catch (Throwable $exception) {
$this->rollBackDatabaseTransaction();
throw $exception;
}
if ($redirectUrl = $this->getRedirectUrl()) {
$this->redirect($redirectUrl, navigate: FilamentView::hasSpaMode() && is_app_url($redirectUrl));
}
}
/**
* @param array<string, mixed> $data
*/
protected function handleRegistration(array $data): Model
{
return $this->getModel()::create($data);
}
protected function getRedirectUrl(): ?string
{
return Filament::getUrl($this->tenant);
}
public function form(Form $form): Form
{
return $form;
}
/**
* @return array<int | string, string | Form>
*/
protected function getForms(): array
{
return [
'form' => $this->form(
$this->makeForm()
->model($this->getModel())
->statePath('data'),
),
];
}
public function getModel(): string
{
return Filament::getTenantModel();
}
public function getTitle(): string | Htmlable
{
return static::getLabel();
}
public static function getSlug(): string
{
return static::$slug ?? 'new';
}
public function hasLogo(): bool
{
return false;
}
/**
* @return array<Action | ActionGroup>
*/
protected function getFormActions(): array
{
return [
$this->getRegisterFormAction(),
];
}
public function getRegisterFormAction(): Action
{
return Action::make('register')
->label(static::getLabel())
->submit('register');
}
protected function hasFullWidthFormActions(): bool
{
return true;
}
public static function canView(): bool
{
try {
return authorize('create', Filament::getTenantModel())->allowed();
} catch (AuthorizationException $exception) {
return $exception->toResponse()->allowed();
}
}
}
Function Calls
None |
Stats
MD5 | c6233ad48eff53a3983dca2e02ee2aab |
Eval Count | 0 |
Decode Time | 93 ms |