Auth: convert auth views and verification email to Nova layout
This commit is contained in:
@@ -11,6 +11,9 @@ use App\Services\Upload\UploadDraftService;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Queue\Events\JobFailed;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
@@ -30,7 +33,9 @@ class AppServiceProvider extends ServiceProvider
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
$this->configureAuthRateLimiters();
|
||||
$this->configureUploadRateLimiters();
|
||||
$this->configureMailFailureLogging();
|
||||
|
||||
// Provide toolbar counts and user info to layout views (port of legacy toolbar logic)
|
||||
View::composer(['layouts.nova', 'layouts.nova.*'], function ($view) {
|
||||
@@ -84,6 +89,37 @@ class AppServiceProvider extends ServiceProvider
|
||||
});
|
||||
}
|
||||
|
||||
private function configureAuthRateLimiters(): void
|
||||
{
|
||||
RateLimiter::for('register', function (Request $request): array {
|
||||
$emailKey = strtolower((string) $request->input('email', 'unknown'));
|
||||
$ipLimit = (int) config('antispam.register.ip_per_minute', 20);
|
||||
$emailLimit = (int) config('antispam.register.email_per_minute', 6);
|
||||
|
||||
return [
|
||||
Limit::perMinute($ipLimit)->by('register:ip:' . $request->ip()),
|
||||
Limit::perMinute($emailLimit)->by('register:email:' . $emailKey),
|
||||
];
|
||||
});
|
||||
}
|
||||
|
||||
private function configureMailFailureLogging(): void
|
||||
{
|
||||
Event::listen(JobFailed::class, function (JobFailed $event): void {
|
||||
if (! str_contains(strtolower($event->job->resolveName()), 'sendqueuedmailable')) {
|
||||
return;
|
||||
}
|
||||
|
||||
Log::warning('mail delivery failed', [
|
||||
'transport' => config('mail.default'),
|
||||
'job_name' => $event->job->resolveName(),
|
||||
'queue' => $event->job->getQueue(),
|
||||
'connection' => $event->connectionName,
|
||||
'exception' => $event->exception->getMessage(),
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
private function configureUploadRateLimiters(): void
|
||||
{
|
||||
RateLimiter::for('uploads-init', function (Request $request): array {
|
||||
|
||||
Reference in New Issue
Block a user