diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php
index 36fa9a9..6adb624 100644
--- a/app/Actions/Fortify/CreateNewUser.php
+++ b/app/Actions/Fortify/CreateNewUser.php
@@ -2,15 +2,14 @@
namespace App\Actions\Fortify;
-use A6digital\Image\DefaultProfileImage;
+use App\Models\AuditLogEntry;
use App\Models\User;
use App\Rules\ValidRegistrationCode;
-use App\Settings;
use Illuminate\Support\Facades\Hash;
-use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
use Laravel\Fortify\Contracts\CreatesNewUsers;
+
use function mb_substr;
class CreateNewUser implements CreatesNewUsers
@@ -41,9 +40,10 @@ class CreateNewUser implements CreatesNewUsers
'password' => $this->passwordRules(),
])->validate();
- $profileImageURL = 'https://ui-avatars.com/api/?name=' . mb_substr($input['first_name'],0,1) . '+' . mb_substr($input['last_name'],0,1);
+ $profileImageURL = 'https://ui-avatars.com/api/?name='.mb_substr($input['first_name'], 0,
+ 1).'+'.mb_substr($input['last_name'], 0, 1);
- return User::create([
+ $user = User::create([
'first_name' => $input['first_name'],
'last_name' => $input['last_name'],
'judging_preference' => $input['judging_preference'],
@@ -52,5 +52,18 @@ class CreateNewUser implements CreatesNewUsers
'profile_image_url' => $profileImageURL,
'password' => Hash::make($input['password']),
]);
+
+ $message = 'New User Registered - '.$input['email']
+ .'
Name: '.$input['first_name'].' '.$input['last_name']
+ .'
Judging Pref: '.$input['judging_preference']
+ .'
Cell Phone: '.$input['cell_phone'];
+ AuditLogEntry::create([
+ 'user' => $input['email'],
+ 'ip_address' => request()->ip(),
+ 'message' => $message,
+ 'affected' => ['users' => $user->id],
+ ]);
+
+ return $user;
}
}
diff --git a/app/Actions/Fortify/ResetUserPassword.php b/app/Actions/Fortify/ResetUserPassword.php
index 7a57c50..939cf6e 100644
--- a/app/Actions/Fortify/ResetUserPassword.php
+++ b/app/Actions/Fortify/ResetUserPassword.php
@@ -2,6 +2,7 @@
namespace App\Actions\Fortify;
+use App\Models\AuditLogEntry;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
@@ -25,5 +26,11 @@ class ResetUserPassword implements ResetsUserPasswords
$user->forceFill([
'password' => Hash::make($input['password']),
])->save();
+ AuditLogEntry::create([
+ 'user' => auth()->user()->email,
+ 'ip_address' => request()->ip(),
+ 'message' => 'Reset Password',
+ 'affected' => ['users' => [$user->id]],
+ ]);
}
}
diff --git a/app/Actions/Fortify/UpdateUserPassword.php b/app/Actions/Fortify/UpdateUserPassword.php
index 8ce1488..12dd295 100644
--- a/app/Actions/Fortify/UpdateUserPassword.php
+++ b/app/Actions/Fortify/UpdateUserPassword.php
@@ -2,11 +2,14 @@
namespace App\Actions\Fortify;
+use App\Models\AuditLogEntry;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Laravel\Fortify\Contracts\UpdatesUserPasswords;
+use function auth;
+
class UpdateUserPassword implements UpdatesUserPasswords
{
use PasswordValidationRules;
@@ -28,5 +31,11 @@ class UpdateUserPassword implements UpdatesUserPasswords
$user->forceFill([
'password' => Hash::make($input['password']),
])->save();
+ AuditLogEntry::create([
+ 'user' => auth()->user()->email,
+ 'ip_address' => request()->ip(),
+ 'message' => 'Changed Password',
+ 'affected' => ['users' => [$user->id]],
+ ]);
}
}
diff --git a/app/Actions/Fortify/UpdateUserProfileInformation.php b/app/Actions/Fortify/UpdateUserProfileInformation.php
index 5a5e1c9..2a56ab6 100644
--- a/app/Actions/Fortify/UpdateUserProfileInformation.php
+++ b/app/Actions/Fortify/UpdateUserProfileInformation.php
@@ -2,6 +2,7 @@
namespace App\Actions\Fortify;
+use App\Models\AuditLogEntry;
use App\Models\User;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Support\Facades\Validator;
@@ -44,6 +45,16 @@ class UpdateUserProfileInformation implements UpdatesUserProfileInformation
'email' => $input['email'],
])->save();
}
+ $message = 'Updated user #'.$user->id.' - '.$user->email
+ .'
Name: '.$user->full_name()
+ .'
Judging Pref: '.$user->judging_preference
+ .'
Cell Phone: '.$user->cell_phone;
+ AuditLogEntry::create([
+ 'user' => auth()->user()->email,
+ 'ip_address' => request()->ip(),
+ 'message' => $message,
+ 'affected' => ['users' => [$user->id]],
+ ]);
}
/**
@@ -53,6 +64,7 @@ class UpdateUserProfileInformation implements UpdatesUserProfileInformation
*/
protected function updateVerifiedUser(User $user, array $input): void
{
+ $oldEmail = $user->email;
$user->forceFill([
'first_name' => $input['first_name'],
'last_name' => $input['last_name'],
@@ -61,6 +73,18 @@ class UpdateUserProfileInformation implements UpdatesUserProfileInformation
'email' => $input['email'],
'email_verified_at' => null,
])->save();
+ $user->refresh();
+ $message = 'Updated user #'.$user->id.' - '.$oldEmail
+ .'
Name: '.$user->full_name()
+ .'
Email: '.$user->email
+ .'
Judging Pref: '.$user->judging_preference
+ .'
Cell Phone: '.$user->cell_phone;
+ AuditLogEntry::create([
+ 'user' => auth()->user()->email,
+ 'ip_address' => request()->ip(),
+ 'message' => $message,
+ 'affected' => ['users' => [$user->id]],
+ ]);
$user->sendEmailVerificationNotification();
}
diff --git a/app/Listeners/LogSendingEmail.php b/app/Listeners/LogSendingEmail.php
new file mode 100644
index 0000000..d858f4e
--- /dev/null
+++ b/app/Listeners/LogSendingEmail.php
@@ -0,0 +1,35 @@
+message->getTo()[0]->getAddress());
+ $subject = $event->message->getSubject();
+ $message = 'Sent email to '.$email_to.'
Subject: '.$subject;
+ AuditLogEntry::create([
+ 'user' => auth()->user()->email ?? 'none',
+ 'ip_address' => request()->ip(),
+ 'message' => $message,
+ ]);
+
+ }
+}