mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-19 21:04:44 +02:00
Add missing auth activity logs (#1372)
This commit is contained in:
parent
7034c4d013
commit
258c97bf14
@ -1,11 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Events\Auth;
|
|
||||||
|
|
||||||
use App\Models\User;
|
|
||||||
use App\Events\Event;
|
|
||||||
|
|
||||||
class DirectLogin extends Event
|
|
||||||
{
|
|
||||||
public function __construct(public User $user, public bool $remember) {}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Events\Auth;
|
|
||||||
|
|
||||||
use App\Events\Event;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
|
||||||
|
|
||||||
class FailedPasswordReset extends Event
|
|
||||||
{
|
|
||||||
use SerializesModels;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new event instance.
|
|
||||||
*/
|
|
||||||
public function __construct(public string $ip, public string $email) {}
|
|
||||||
}
|
|
@ -288,6 +288,8 @@ class EditProfile extends BaseEditProfile
|
|||||||
);
|
);
|
||||||
|
|
||||||
Activity::event('user:api-key.create')
|
Activity::event('user:api-key.create')
|
||||||
|
->actor($user)
|
||||||
|
->subject($user)
|
||||||
->subject($token->accessToken)
|
->subject($token->accessToken)
|
||||||
->property('identifier', $token->accessToken->identifier)
|
->property('identifier', $token->accessToken->identifier)
|
||||||
->log();
|
->log();
|
||||||
|
@ -2,8 +2,10 @@
|
|||||||
|
|
||||||
namespace App\Filament\Pages\Auth;
|
namespace App\Filament\Pages\Auth;
|
||||||
|
|
||||||
|
use App\Events\Auth\ProvidedAuthenticationToken;
|
||||||
use App\Extensions\Captcha\Providers\CaptchaProvider;
|
use App\Extensions\Captcha\Providers\CaptchaProvider;
|
||||||
use App\Extensions\OAuth\Providers\OAuthProvider;
|
use App\Extensions\OAuth\Providers\OAuthProvider;
|
||||||
|
use App\Facades\Activity;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Filament\Facades\Filament;
|
use Filament\Facades\Filament;
|
||||||
use Filament\Forms\Components\Actions;
|
use Filament\Forms\Components\Actions;
|
||||||
@ -54,6 +56,11 @@ class Login extends BaseLogin
|
|||||||
if ($token === null) {
|
if ($token === null) {
|
||||||
$this->verifyTwoFactor = true;
|
$this->verifyTwoFactor = true;
|
||||||
|
|
||||||
|
Activity::event('auth:checkpoint')
|
||||||
|
->withRequestMetadata()
|
||||||
|
->subject($user)
|
||||||
|
->log();
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,11 +71,18 @@ class Login extends BaseLogin
|
|||||||
$token,
|
$token,
|
||||||
Config::integer('panel.auth.2fa.window'),
|
Config::integer('panel.auth.2fa.window'),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ($isValidToken) {
|
||||||
|
event(new ProvidedAuthenticationToken($user));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
foreach ($user->recoveryTokens as $recoveryToken) {
|
foreach ($user->recoveryTokens as $recoveryToken) {
|
||||||
if (password_verify($token, $recoveryToken->token)) {
|
if (password_verify($token, $recoveryToken->token)) {
|
||||||
$isValidToken = true;
|
$isValidToken = true;
|
||||||
$recoveryToken->delete();
|
$recoveryToken->delete();
|
||||||
|
|
||||||
|
event(new ProvidedAuthenticationToken($user, true));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ namespace App\Listeners\Auth;
|
|||||||
|
|
||||||
use App\Facades\Activity;
|
use App\Facades\Activity;
|
||||||
use Illuminate\Auth\Events\Failed;
|
use Illuminate\Auth\Events\Failed;
|
||||||
use App\Events\Auth\DirectLogin;
|
use Illuminate\Auth\Events\Login;
|
||||||
|
|
||||||
class AuthenticationListener
|
class AuthenticationListener
|
||||||
{
|
{
|
||||||
@ -12,9 +12,10 @@ class AuthenticationListener
|
|||||||
* Handles an authentication event by logging the user and information about
|
* Handles an authentication event by logging the user and information about
|
||||||
* the request.
|
* the request.
|
||||||
*/
|
*/
|
||||||
public function handle(Failed|DirectLogin $event): void
|
public function handle(Failed|Login $event): void
|
||||||
{
|
{
|
||||||
$activity = Activity::withRequestMetadata();
|
$activity = Activity::withRequestMetadata();
|
||||||
|
|
||||||
if ($event->user) {
|
if ($event->user) {
|
||||||
$activity = $activity->subject($event->user);
|
$activity = $activity->subject($event->user);
|
||||||
}
|
}
|
||||||
|
@ -2,22 +2,14 @@
|
|||||||
|
|
||||||
namespace App\Listeners\Auth;
|
namespace App\Listeners\Auth;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use App\Facades\Activity;
|
use App\Facades\Activity;
|
||||||
use Illuminate\Auth\Events\PasswordReset;
|
use Illuminate\Auth\Events\PasswordReset;
|
||||||
|
|
||||||
class PasswordResetListener
|
class PasswordResetListener
|
||||||
{
|
{
|
||||||
protected Request $request;
|
|
||||||
|
|
||||||
public function __construct(Request $request)
|
|
||||||
{
|
|
||||||
$this->request = $request;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function handle(PasswordReset $event): void
|
public function handle(PasswordReset $event): void
|
||||||
{
|
{
|
||||||
Activity::event('event:password-reset')
|
Activity::event('auth:password-reset')
|
||||||
->withRequestMetadata()
|
->withRequestMetadata()
|
||||||
->subject($event->user)
|
->subject($event->user)
|
||||||
->log();
|
->log();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user