fix: can't use ->user() in defered function on logout route

Otherwise it gets changed to null after checking for its nullability.
This commit is contained in:
Roardom
2025-12-02 09:23:05 +00:00
parent 7fd54f8e85
commit 38e49bb6b9

View File

@@ -73,18 +73,21 @@ class RouteServiceProvider extends ServiceProvider
*/
protected function configureRateLimiting(): void
{
RateLimiter::for(GlobalRateLimit::WEB, fn (Request $request): Limit => $request->user()
? Limit::perMinute(
RateLimiter::for(GlobalRateLimit::WEB, function (Request $request): Limit {
$user = $request->user();
return $user ? Limit::perMinute(
cache()->flexible(
'group:'.$request->user()->group_id.':is_modo',
'group:'.$user->group_id.':is_modo',
[5, 10],
fn () => $request->user()->group()->value('is_modo')
fn () => $user->group()->value('is_modo')
)
? 60
: 30
)
->by('web'.$request->user()->id)
: Limit::perMinute(8)->by('web'.$request->ip()));
->by('web'.$user->id)
: Limit::perMinute(8)->by('web'.$request->ip());
});
RateLimiter::for(GlobalRateLimit::API, fn (Request $request) => Limit::perMinute(30)->by('api'.$request->user()->id));
RateLimiter::for(GlobalRateLimit::ANNOUNCE, fn (Request $request) => Limit::perMinute(500)->by('announce'.$request->ip()));
RateLimiter::for(GlobalRateLimit::CHAT, fn (Request $request) => Limit::perMinute(60)->by('chat'.$request->user()->id));