From 459fb7c92bf644a3651b769f0530246328878778 Mon Sep 17 00:00:00 2001 From: Baspa Date: Fri, 16 Aug 2024 08:50:55 +0000 Subject: [PATCH] Fix styling --- src/Enums/TwoFactorType.php | 4 +- src/Http/Livewire/Auth/Login.php | 25 ++++--- src/Http/Livewire/Auth/LoginTwoFactor.php | 22 +++--- .../Livewire/Auth/PasswordConfirmation.php | 8 +- src/Http/Livewire/Auth/PasswordReset.php | 10 ++- .../Livewire/Auth/RequestPasswordReset.php | 9 +-- src/Http/Responses/RegistrationResponse.php | 3 +- .../TwoFactorChallengeViewResponse.php | 2 +- src/Pages/TwoFactor.php | 29 ++++---- src/Traits/EnumArraySerializableTrait.php | 2 +- src/Traits/EnumNamesTrait.php | 2 +- src/Traits/EnumValuesTrait.php | 2 +- src/TwoFactorAuthServiceProvider.php | 74 +++++++++---------- 13 files changed, 98 insertions(+), 94 deletions(-) diff --git a/src/Enums/TwoFactorType.php b/src/Enums/TwoFactorType.php index 7d72701..472e642 100644 --- a/src/Enums/TwoFactorType.php +++ b/src/Enums/TwoFactorType.php @@ -19,8 +19,8 @@ public static function values(): array public function label(): string { return match ($this) { - static::email => __('E-mail'), - static::authenticator => __('Authenticator app'), + self::email => __('E-mail'), + self::authenticator => __('Authenticator app'), }; } } diff --git a/src/Http/Livewire/Auth/Login.php b/src/Http/Livewire/Auth/Login.php index fcafdce..bccdf34 100644 --- a/src/Http/Livewire/Auth/Login.php +++ b/src/Http/Livewire/Auth/Login.php @@ -2,27 +2,27 @@ namespace Vormkracht10\TwoFactorAuth\Http\Livewire\Auth; +use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException; use Filament\Actions\Action; -use Illuminate\Http\Request; -use Laravel\Fortify\Fortify; -use Laravel\Fortify\Features; use Filament\Facades\Filament; -use Illuminate\Routing\Pipeline; -use Illuminate\Support\HtmlString; -use Illuminate\Support\Facades\Blade; use Filament\Forms\Components\Checkbox; use Filament\Forms\Components\Component; use Filament\Forms\Components\TextInput; -use Filament\Notifications\Notification; use Filament\Models\Contracts\FilamentUser; +use Filament\Notifications\Notification; use Filament\Pages\Auth\Login as BaseLogin; -use Laravel\Fortify\Actions\CanonicalizeUsername; +use Illuminate\Http\Request; +use Illuminate\Routing\Pipeline; +use Illuminate\Support\Facades\Blade; +use Illuminate\Support\HtmlString; use Laravel\Fortify\Actions\AttemptToAuthenticate; +use Laravel\Fortify\Actions\CanonicalizeUsername; use Laravel\Fortify\Actions\EnsureLoginIsNotThrottled; use Laravel\Fortify\Actions\PrepareAuthenticatedSession; -use Vormkracht10\TwoFactorAuth\Http\Responses\LoginResponse; use Laravel\Fortify\Actions\RedirectIfTwoFactorAuthenticatable; -use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException; +use Laravel\Fortify\Features; +use Laravel\Fortify\Fortify; +use Vormkracht10\TwoFactorAuth\Http\Responses\LoginResponse; class Login extends BaseLogin { @@ -33,6 +33,7 @@ class Login extends BaseLogin protected static string $layout = 'filament-two-factor-auth::layouts.login'; public $email = ''; + public $password = ''; public $resetPasswordEnabled = false; @@ -100,7 +101,7 @@ public function loginWithFortify() return $this->loginPipeline($request)->then(function (Request $request) use ($data) { - if (!Filament::auth()->attempt($this->getCredentialsFromFormData($data), $data['remember'] ?? false)) { + if (! Filament::auth()->attempt($this->getCredentialsFromFormData($data), $data['remember'] ?? false)) { $this->throwFailureValidationException(); } @@ -108,7 +109,7 @@ public function loginWithFortify() if ( ($user instanceof FilamentUser) && - (!$user->canAccessPanel(Filament::getCurrentPanel())) + (! $user->canAccessPanel(Filament::getCurrentPanel())) ) { Filament::auth()->logout(); diff --git a/src/Http/Livewire/Auth/LoginTwoFactor.php b/src/Http/Livewire/Auth/LoginTwoFactor.php index 83ccba3..0eeb70b 100644 --- a/src/Http/Livewire/Auth/LoginTwoFactor.php +++ b/src/Http/Livewire/Auth/LoginTwoFactor.php @@ -3,23 +3,23 @@ namespace Vormkracht10\TwoFactorAuth\Http\Livewire\Auth; use App\Models\User; -use Filament\Pages\Page; -use Filament\Actions\Action; use App\Notifications\SendOTP; -use Filament\Forms\Contracts\HasForms; -use Filament\Forms\Components\TextInput; -use Filament\Notifications\Notification; +use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException; +use DanHarrin\LivewireRateLimiting\WithRateLimiting; +use Filament\Actions\Action; use Filament\Actions\Contracts\HasActions; +use Filament\Forms\Components\TextInput; use Filament\Forms\Concerns\InteractsWithForms; +use Filament\Forms\Contracts\HasForms; +use Filament\Notifications\Notification; use Filament\Pages\Concerns\InteractsWithFormActions; +use Filament\Pages\Page; use Laravel\Fortify\Http\Requests\TwoFactorLoginRequest; -use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException; -use DanHarrin\LivewireRateLimiting\WithRateLimiting; -class LoginTwoFactor extends Page implements HasForms, HasActions +class LoginTwoFactor extends Page implements HasActions, HasForms { - use InteractsWithForms; use InteractsWithFormActions; + use InteractsWithForms; use WithRateLimiting; protected static string $layout = 'filament-two-factor-auth::layouts.login'; @@ -50,7 +50,7 @@ public function resend(): ?Action ->extraAttributes(['class' => 'w-full text-xs']) ->link() ->action(function () { - if (!$this->throttle()) { + if (! $this->throttle()) { return; } @@ -67,6 +67,7 @@ private function throttle(): bool { try { $this->rateLimit(1); + return true; } catch (TooManyRequestsException $exception) { Notification::make() @@ -80,6 +81,7 @@ private function throttle(): bool ]) : null) ->danger() ->send(); + return false; } } diff --git a/src/Http/Livewire/Auth/PasswordConfirmation.php b/src/Http/Livewire/Auth/PasswordConfirmation.php index 11d1baa..24093ad 100644 --- a/src/Http/Livewire/Auth/PasswordConfirmation.php +++ b/src/Http/Livewire/Auth/PasswordConfirmation.php @@ -2,12 +2,12 @@ namespace Vormkracht10\TwoFactorAuth\Http\Livewire\Auth; -use Livewire\Component; -use Illuminate\Contracts\View\View; -use Filament\Forms\Contracts\HasForms; use Filament\Forms\Components\TextInput; -use Filament\Notifications\Notification; use Filament\Forms\Concerns\InteractsWithForms; +use Filament\Forms\Contracts\HasForms; +use Filament\Notifications\Notification; +use Illuminate\Contracts\View\View; +use Livewire\Component; class PasswordConfirmation extends Component implements HasForms { diff --git a/src/Http/Livewire/Auth/PasswordReset.php b/src/Http/Livewire/Auth/PasswordReset.php index 19ae0a4..6d93d1c 100644 --- a/src/Http/Livewire/Auth/PasswordReset.php +++ b/src/Http/Livewire/Auth/PasswordReset.php @@ -2,14 +2,14 @@ namespace Vormkracht10\TwoFactorAuth\Http\Livewire\Auth; -use Filament\Pages\Page; use Filament\Facades\Filament; -use Illuminate\Contracts\View\View; use Filament\Forms\Components\Hidden; -use Filament\Forms\Contracts\HasForms; use Filament\Forms\Components\TextInput; -use Filament\Notifications\Notification; use Filament\Forms\Concerns\InteractsWithForms; +use Filament\Forms\Contracts\HasForms; +use Filament\Notifications\Notification; +use Filament\Pages\Page; +use Illuminate\Contracts\View\View; class PasswordReset extends Page implements HasForms { @@ -18,7 +18,9 @@ class PasswordReset extends Page implements HasForms protected static string $layout = 'filament-two-factor-auth::layouts.login'; public ?string $email = ''; + public ?string $password = ''; + public ?string $token = ''; public function mount(): void diff --git a/src/Http/Livewire/Auth/RequestPasswordReset.php b/src/Http/Livewire/Auth/RequestPasswordReset.php index 8e5a936..0e21006 100644 --- a/src/Http/Livewire/Auth/RequestPasswordReset.php +++ b/src/Http/Livewire/Auth/RequestPasswordReset.php @@ -2,14 +2,13 @@ namespace Vormkracht10\TwoFactorAuth\Http\Livewire\Auth; -use Filament\Pages\Page; - use Filament\Facades\Filament; -use Illuminate\Contracts\View\View; -use Filament\Forms\Contracts\HasForms; use Filament\Forms\Components\TextInput; -use Filament\Notifications\Notification; use Filament\Forms\Concerns\InteractsWithForms; +use Filament\Forms\Contracts\HasForms; +use Filament\Notifications\Notification; +use Filament\Pages\Page; +use Illuminate\Contracts\View\View; class RequestPasswordReset extends Page implements HasForms { diff --git a/src/Http/Responses/RegistrationResponse.php b/src/Http/Responses/RegistrationResponse.php index 261f9a2..20eedee 100644 --- a/src/Http/Responses/RegistrationResponse.php +++ b/src/Http/Responses/RegistrationResponse.php @@ -1,13 +1,14 @@ intended(route('filament.admin.auth.email-verification.prompt')); } diff --git a/src/Http/Responses/TwoFactorChallengeViewResponse.php b/src/Http/Responses/TwoFactorChallengeViewResponse.php index 7199268..16c42d8 100644 --- a/src/Http/Responses/TwoFactorChallengeViewResponse.php +++ b/src/Http/Responses/TwoFactorChallengeViewResponse.php @@ -17,4 +17,4 @@ public function toResponse($request) { return redirect()->intended(Filament::getUrl()); } -} \ No newline at end of file +} diff --git a/src/Pages/TwoFactor.php b/src/Pages/TwoFactor.php index cd29dd6..97a0a72 100644 --- a/src/Pages/TwoFactor.php +++ b/src/Pages/TwoFactor.php @@ -2,21 +2,20 @@ namespace Vormkracht10\TwoFactorAuth\Pages; -use Filament\Forms\Form; -use Filament\Pages\Page; use Filament\Actions\Action; -use Laravel\Fortify\Features; - use Filament\Forms\Components\Radio; -use Illuminate\Support\Facades\Auth; -use Filament\Forms\Contracts\HasForms; use Filament\Forms\Components\TextInput; +use Filament\Forms\Contracts\HasForms; +use Filament\Forms\Form; use Filament\Notifications\Notification; -use Vormkracht10\TwoFactorAuth\Enums\TwoFactorType; -use Laravel\Fortify\Actions\GenerateNewRecoveryCodes; -use Laravel\Fortify\Actions\EnableTwoFactorAuthentication; +use Filament\Pages\Page; +use Illuminate\Support\Facades\Auth; use Laravel\Fortify\Actions\ConfirmTwoFactorAuthentication; use Laravel\Fortify\Actions\DisableTwoFactorAuthentication; +use Laravel\Fortify\Actions\EnableTwoFactorAuthentication; +use Laravel\Fortify\Actions\GenerateNewRecoveryCodes; +use Laravel\Fortify\Features; +use Vormkracht10\TwoFactorAuth\Enums\TwoFactorType; class TwoFactor extends Page implements HasForms { @@ -32,7 +31,7 @@ class TwoFactor extends Page implements HasForms public string $code; - protected static string $view = "filament-two-factor-auth::two-factor"; + protected static string $view = 'filament-two-factor-auth::two-factor'; public static function shouldRegisterNavigation(): bool { @@ -58,19 +57,19 @@ public function mount() public function requireConfirmation(): bool { - return !$this->passwordIsConfirmed(); + return ! $this->passwordIsConfirmed(); } public function getConfirmationForm(): array { return [ - TextInput::make("current_password") + TextInput::make('current_password') ->label(__('Password')) ->dehydrateStateUsing(fn ($state) => filled($state)) ->required() ->password() ->inlineLabel() - ->rule("current_password"), + ->rule('current_password'), ]; } @@ -80,7 +79,7 @@ public function twoFactorOptionForm(Form $form): Form Radio::make('option') ->label(__('Authentication method')) ->hiddenLabel() - ->options(TwoFactorType::array()) + ->options(TwoFactorType::array()), ])->statePath('twoFactorData'); } @@ -165,7 +164,7 @@ public function disableAction(): Action /** This method is used in the view */ private function showTwoFactor(): bool { - return !empty(Auth::user()->two_factor_secret); + return ! empty(Auth::user()->two_factor_secret); } public function enableTwoFactorAuthentication(EnableTwoFactorAuthentication $enable): void diff --git a/src/Traits/EnumArraySerializableTrait.php b/src/Traits/EnumArraySerializableTrait.php index 5bb5d26..b4bd573 100644 --- a/src/Traits/EnumArraySerializableTrait.php +++ b/src/Traits/EnumArraySerializableTrait.php @@ -11,4 +11,4 @@ public static function array(): array { return array_combine(static::names(), static::values()); } -} \ No newline at end of file +} diff --git a/src/Traits/EnumNamesTrait.php b/src/Traits/EnumNamesTrait.php index 068ef12..18e7d53 100644 --- a/src/Traits/EnumNamesTrait.php +++ b/src/Traits/EnumNamesTrait.php @@ -10,4 +10,4 @@ public static function names(): array { return array_map(fn ($enum) => $enum->name, static::cases()); } -} \ No newline at end of file +} diff --git a/src/Traits/EnumValuesTrait.php b/src/Traits/EnumValuesTrait.php index 0899793..582741f 100644 --- a/src/Traits/EnumValuesTrait.php +++ b/src/Traits/EnumValuesTrait.php @@ -10,4 +10,4 @@ public static function values(): array { return array_map(fn ($enum) => $enum->value, static::cases()); } -} \ No newline at end of file +} diff --git a/src/TwoFactorAuthServiceProvider.php b/src/TwoFactorAuthServiceProvider.php index 383f1f5..faed196 100644 --- a/src/TwoFactorAuthServiceProvider.php +++ b/src/TwoFactorAuthServiceProvider.php @@ -2,43 +2,43 @@ namespace Vormkracht10\TwoFactorAuth; -use Livewire\Livewire; -use Illuminate\Support\Str; -use Illuminate\Http\Request; -use Laravel\Fortify\Fortify; -use Laravel\Fortify\Features; -use Filament\Support\Assets\Js; -use Filament\Support\Assets\Css; -use Filament\Support\Assets\Asset; -use Illuminate\Filesystem\Filesystem; -use Illuminate\Support\Facades\Route; use App\Actions\Fortify\CreateNewUser; -use Spatie\LaravelPackageTools\Package; -use Illuminate\Cache\RateLimiting\Limit; -use Illuminate\Support\Facades\Redirect; use App\Actions\Fortify\ResetUserPassword; -use Filament\Support\Facades\FilamentIcon; use App\Actions\Fortify\UpdateUserPassword; +use App\Actions\Fortify\UpdateUserProfileInformation; +use Filament\Support\Assets\AlpineComponent; +use Filament\Support\Assets\Asset; +use Filament\Support\Assets\Css; +use Filament\Support\Assets\Js; use Filament\Support\Facades\FilamentAsset; +use Filament\Support\Facades\FilamentIcon; +use Illuminate\Cache\RateLimiting\Limit; +use Illuminate\Filesystem\Filesystem; +use Illuminate\Http\Request; use Illuminate\Support\Facades\RateLimiter; -use Filament\Support\Assets\AlpineComponent; +use Illuminate\Support\Facades\Redirect; +use Illuminate\Support\Facades\Route; +use Illuminate\Support\Str; +use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract; +use Laravel\Fortify\Contracts\TwoFactorLoginResponse as TwoFactorLoginResponseContract; +use Laravel\Fortify\Features; +use Laravel\Fortify\Fortify; +use Laravel\Fortify\Http\Responses\TwoFactorLoginResponse; use Livewire\Features\SupportTesting\Testable; -use App\Actions\Fortify\UpdateUserProfileInformation; -use Spatie\LaravelPackageTools\PackageServiceProvider; +use Livewire\Livewire; use Spatie\LaravelPackageTools\Commands\InstallCommand; -use Vormkracht10\TwoFactorAuth\Http\Livewire\Auth\Login; -use Laravel\Fortify\Http\Responses\TwoFactorLoginResponse; -use Vormkracht10\TwoFactorAuth\Testing\TestsTwoFactorAuth; -use Vormkracht10\TwoFactorAuth\Http\Responses\LoginResponse; +use Spatie\LaravelPackageTools\Package; +use Spatie\LaravelPackageTools\PackageServiceProvider; use Vormkracht10\TwoFactorAuth\Commands\TwoFactorAuthCommand; -use Vormkracht10\TwoFactorAuth\Http\Livewire\Auth\PasswordReset; +use Vormkracht10\TwoFactorAuth\Http\Livewire\Auth\Login; use Vormkracht10\TwoFactorAuth\Http\Livewire\Auth\LoginTwoFactor; -use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract; use Vormkracht10\TwoFactorAuth\Http\Livewire\Auth\PasswordConfirmation; +use Vormkracht10\TwoFactorAuth\Http\Livewire\Auth\PasswordReset; use Vormkracht10\TwoFactorAuth\Http\Livewire\Auth\RequestPasswordReset; +use Vormkracht10\TwoFactorAuth\Http\Responses\LoginResponse; use Vormkracht10\TwoFactorAuth\Http\Responses\TwoFactorChallengeViewResponse; -use Laravel\Fortify\Contracts\TwoFactorLoginResponse as TwoFactorLoginResponseContract; use Vormkracht10\TwoFactorAuth\Pages\TwoFactor; +use Vormkracht10\TwoFactorAuth\Testing\TestsTwoFactorAuth; class TwoFactorAuthServiceProvider extends PackageServiceProvider { @@ -121,10 +121,10 @@ public function packageBooted(): void $this->overrideFortifyViews(); Route::domain(config('filament.domain')) - ->middleware(config('filament.middleware.base')) - ->name('filament.') - ->group(function () { - /** + ->middleware(config('filament.middleware.base')) + ->name('filament.') + ->group(function () { + /** * We do not need to override logout response and logout path as: * - logout response for both filament and fortify does * basically the same things except fortify handle for api calls @@ -132,15 +132,15 @@ public function packageBooted(): void * - filament's logout route is at /filament/logout */ - /** + /** * Redeclare filament.auth.login route as fortify override it * This route name is used multiple places in filament. */ - Route::prefix(config('filament.path'))->group(function () { - Route::get('/filament-login', fn() => Redirect::route('login')) - ->name('auth.login'); + Route::prefix(config('filament.path'))->group(function () { + Route::get('/filament-login', fn () => Redirect::route('login')) + ->name('auth.login'); + }); }); - }); } protected function forceFortifyConfig(): void @@ -210,10 +210,10 @@ protected function overrideFortifyViews(): void protected function registerContractsAndComponents(): void { - Livewire::component((new PasswordReset())->getName(), PasswordReset::class); - Livewire::component((new RequestPasswordReset())->getName(), RequestPasswordReset::class); - Livewire::component((new LoginTwoFactor())->getName(), LoginTwoFactor::class); - Livewire::component((new TwoFactor())->getName(), TwoFactor::class); + Livewire::component((new PasswordReset)->getName(), PasswordReset::class); + Livewire::component((new RequestPasswordReset)->getName(), RequestPasswordReset::class); + Livewire::component((new LoginTwoFactor)->getName(), LoginTwoFactor::class); + Livewire::component((new TwoFactor)->getName(), TwoFactor::class); $this->app->singleton(LoginResponseContract::class, LoginResponse::class); $this->app->singleton(TwoFactorLoginResponseContract::class, TwoFactorLoginResponse::class);