Files
speech2text/app/Providers/AppServiceProvider.php
2026-06-02 17:35:45 +08:00

41 lines
1.3 KiB
PHP

<?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());
});
}
}