@@ -9,16 +9,20 @@ use App\Services\Malware\ClamDScanner;
|
||||
use App\Services\Malware\MalwareScanner;
|
||||
use App\Services\Mne\BusinessRepository;
|
||||
use App\Services\Mne\CompatibleBusinessRepository;
|
||||
use App\Services\PortalProfileAccess;
|
||||
use Carbon\CarbonImmutable;
|
||||
use Illuminate\Auth\Events\Login;
|
||||
use Illuminate\Cache\RateLimiting\Limit;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\Date;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Facades\RateLimiter;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Illuminate\Validation\Rules\Password;
|
||||
use Laravel\Fortify\Events\ValidTwoFactorAuthenticationCodeProvided;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
@@ -39,6 +43,17 @@ class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
$this->configureDefaults();
|
||||
|
||||
Event::listen(ValidTwoFactorAuthenticationCodeProvided::class, function ($event): void {
|
||||
if (app(PortalProfileAccess::class)->available()) {
|
||||
session()->put(['portal.mfa_actor' => $event->user->id, 'portal.mfa_at' => time()]);
|
||||
}
|
||||
});
|
||||
Event::listen(Login::class, function ($event): void {
|
||||
if (app(PortalProfileAccess::class)->available()) {
|
||||
session()->put('portal.access_revision', (int) DB::table('users')->where('id', $event->user->id)->value('portal_access_revision'));
|
||||
}
|
||||
});
|
||||
|
||||
Gate::define('manage-portal', fn (User $user) => $user->hasVerifiedEmail()
|
||||
&& in_array(strtolower($user->email), config('portal.managers', []), true));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user