first
This commit is contained in:
40
app/Providers/AppServiceProvider.php
Normal file
40
app/Providers/AppServiceProvider.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Models\ProjectComment;
|
||||
use App\Models\TranscriptVersion;
|
||||
use App\Models\TranscriptionProject;
|
||||
use App\Models\User;
|
||||
use App\Policies\CommentPolicy;
|
||||
use App\Policies\TranscriptVersionPolicy;
|
||||
use App\Policies\TranscriptionProjectPolicy;
|
||||
use App\Policies\UserPolicy;
|
||||
use Illuminate\Cache\RateLimiting\Limit;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Facades\RateLimiter;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register(): void {}
|
||||
|
||||
public function boot(): void
|
||||
{
|
||||
// Register Policies
|
||||
Gate::policy(User::class, UserPolicy::class);
|
||||
Gate::policy(TranscriptionProject::class, TranscriptionProjectPolicy::class);
|
||||
Gate::policy(TranscriptVersion::class, TranscriptVersionPolicy::class);
|
||||
Gate::policy(ProjectComment::class, CommentPolicy::class);
|
||||
|
||||
// Rate Limiters
|
||||
RateLimiter::for('login', function (Request $request) {
|
||||
return Limit::perMinute(5)->by($request->input('email') . '|' . $request->ip());
|
||||
});
|
||||
|
||||
RateLimiter::for('upload', function (Request $request) {
|
||||
return Limit::perHour(10)->by($request->user()?->id ?: $request->ip());
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user