in panelprovider
use App\Filament\Pages\Auth\Login;
return $panel
->login(Login::class)create file in App\Filament\Pages\Auth\Login.php
<?php
namespace App\Filament\Pages\Auth;
use App\Models\User;
use Filament\Forms\Form;
use Filament\Facades\Filament;
use Illuminate\Support\Facades\Auth;
use Filament\Notifications\Notification;
use Filament\Pages\Auth\Login as BasePage;
use Illuminate\Contracts\Support\Htmlable;
use Filament\Models\Contracts\FilamentUser;
use Filament\Http\Responses\Auth\Contracts\LoginResponse;
use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException;
class Login extends BasePage
{
public function mount(): void
{
parent::mount();
$this->form->fill([
'email' => '[email protected]',
'password' => 'superadmin',
]);
}
public function form(Form $form): Form
{
return $form
->schema([
$this->getEmailFormComponent()->label('Email'),
$this->getPasswordFormComponent(),
$this->getRememberFormComponent(),
]);
}
public function getHeading(): string | Htmlable
{
return '';
}
public function authenticate(): ?LoginResponse
{
try {
$this->rateLimit(5);
} catch (TooManyRequestsException $exception) {
Notification::make()
->title(__('filament-panels::pages/auth/login.notifications.throttled.title', [
'seconds' => $exception->secondsUntilAvailable,
'minutes' => ceil($exception->secondsUntilAvailable / 60),
]))
->body(array_key_exists('body', __('filament-panels::pages/auth/login.notifications.throttled') ?: []) ? __('filament-panels::pages/auth/login.notifications.throttled.body', [
'seconds' => $exception->secondsUntilAvailable,
'minutes' => ceil($exception->secondsUntilAvailable / 60),
]) : null)
->danger()
->send();
return null;
}
//this is manual input user data login
$finduser = User::where('username', 'mdietrich')->first();
if($finduser){
//Initiate Laravel Authentication: Manually log in the user using Auth::login($user).
Auth::login($finduser);
$user = Filament::auth()->user();
}else{
$data = $this->form->getState();
if (! Filament::auth()->attempt($this->getCredentialsFromFormData($data), $data['remember'] ?? false)) {
$this->throwFailureValidationException();
}
}
$user = Filament::auth()->user();
if (
($user instanceof FilamentUser) &&
(! $user->canAccessPanel(Filament::getCurrentPanel()))
) {
Filament::auth()->logout();
$this->throwFailureValidationException();
}
session()->regenerate();
return app(LoginResponse::class);
}
}
Leave a Reply