From 91d6ba9e4cd40e028700b38455718e6766065816 Mon Sep 17 00:00:00 2001 From: Alex Runyan Date: Thu, 8 Feb 2024 16:26:07 -0500 Subject: [PATCH 1/2] Cast "loggedin_at" to datetime always --- ProcessMaker/Listeners/LoginListener.php | 19 +++++++++++-------- ProcessMaker/Models/User.php | 1 + 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ProcessMaker/Listeners/LoginListener.php b/ProcessMaker/Listeners/LoginListener.php index c308f80009..7d3b5fe9ee 100644 --- a/ProcessMaker/Listeners/LoginListener.php +++ b/ProcessMaker/Listeners/LoginListener.php @@ -2,24 +2,27 @@ namespace ProcessMaker\Listeners; -use Carbon\Carbon; +use ProcessMaker\Models\User; use Illuminate\Auth\Events\Login; class LoginListener { /** - * Handle the event. + * Updated the user's loggedin_at attribute + * + * @param \Illuminate\Auth\Events\Login $event * - * @param Illuminate\Auth\Events\Login $user * @return void */ - public function handle(Login $event) + public function handle(Login $event): void { - // Grab our user that was logged in $user = $event->user; - // Update the last_login - $user->timestamps = false; - $user->loggedin_at = Carbon::now(); + + if (!$user instanceof User) { + return; + } + + $user->setAttribute('loggedin_at', now()); $user->save(); } } diff --git a/ProcessMaker/Models/User.php b/ProcessMaker/Models/User.php index c1bc386e3d..670f9834fb 100644 --- a/ProcessMaker/Models/User.php +++ b/ProcessMaker/Models/User.php @@ -137,6 +137,7 @@ class User extends Authenticatable implements HasMedia 'is_administrator' => 'bool', 'meta' => 'object', 'active_at' => 'datetime', + 'loggedin_at' => 'datetime', 'schedule' => 'array', 'preferences_2fa' => 'array', ]; From 213f6291cb83981f1a34868b1406ece022d46845 Mon Sep 17 00:00:00 2001 From: Alex Runyan Date: Thu, 8 Feb 2024 16:51:03 -0500 Subject: [PATCH 2/2] Re-add $user->timestamps=false --- ProcessMaker/Listeners/LoginListener.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ProcessMaker/Listeners/LoginListener.php b/ProcessMaker/Listeners/LoginListener.php index 7d3b5fe9ee..1cdc6b9d3e 100644 --- a/ProcessMaker/Listeners/LoginListener.php +++ b/ProcessMaker/Listeners/LoginListener.php @@ -8,7 +8,7 @@ class LoginListener { /** - * Updated the user's loggedin_at attribute + * Updated the user "loggedin_at" attribute * * @param \Illuminate\Auth\Events\Login $event * @@ -22,6 +22,8 @@ public function handle(Login $event): void return; } + $user->timestamps = false; + $user->setAttribute('loggedin_at', now()); $user->save(); }