James Cole
2020-10-03 07:03:41 +02:00
parent 96028e91be
commit aadcb2cc5b
10 changed files with 74 additions and 6 deletions

View File

@@ -54,6 +54,12 @@ class APIEventHandler
$email = $user->email;
$ipAddress = Request::ip();
// see if user has alternative email address:
$pref = app('preferences')->getForUser($user, 'remote_guard_alt_email', null);
if (null !== $pref) {
$email = $pref->data;
}
Log::debug(sprintf('Now in APIEventHandler::accessTokenCreated. Email is %s, IP is %s', $email, $ipAddress));
try {
Log::debug('Trying to send message...');

View File

@@ -52,6 +52,12 @@ class AdminEventHandler
$email = $event->user->email;
$ipAddress = $event->ipAddress;
// see if user has alternative email address:
$pref = app('preferences')->getForUser($event->user, 'remote_guard_alt_email', null);
if (null !== $pref) {
$email = $pref->data;
}
Log::debug(sprintf('Now in sendTestMessage event handler. Email is %s, IP is %s', $email, $ipAddress));
try {
Log::debug('Trying to send message...');

View File

@@ -56,9 +56,19 @@ class AutomationHandler
$repository = app(UserRepositoryInterface::class);
$user = $repository->findNull($event->userId);
if (null !== $user && 0 !== $event->groups->count()) {
$email = $user->email;
// see if user has alternative email address:
$pref = app('preferences')->getForUser($user, 'remote_guard_alt_email', null);
if (null !== $pref) {
$email = $pref->data;
}
try {
Log::debug('Trying to mail...');
Mail::to($user->email)->send(new ReportNewJournalsMail($user->email, '127.0.0.1', $event->groups));
Mail::to($user->email)->send(new ReportNewJournalsMail($email, '127.0.0.1', $event->groups));
// @codeCoverageIgnoreStart
} catch (Exception $e) {
Log::debug('Send message failed! :(');

View File

@@ -184,6 +184,12 @@ class UserEventHandler
$ipAddress = $event->ipAddress;
$list = app('preferences')->getForUser($user, 'login_ip_history', [])->data;
// see if user has alternative email address:
$pref = app('preferences')->getForUser($user, 'remote_guard_alt_email', null);
if (null !== $pref) {
$email = $pref->data;
}
/** @var array $entry */
foreach ($list as $index => $entry) {
if (false === $entry['notified']) {
@@ -300,6 +306,12 @@ class UserEventHandler
$uri = route('index');
$ipAddress = $event->ipAddress;
// see if user has alternative email address:
$pref = app('preferences')->getForUser($event->user, 'remote_guard_alt_email', null);
if (null !== $pref) {
$email = $pref->data;
}
// send email.
try {
Mail::to($email)->send(new RegisteredUserMail($uri, $ipAddress));

View File

@@ -59,8 +59,15 @@ class HomeController extends Controller
Log::channel('audit')->info('User visits admin index.');
$title = (string) trans('firefly.administration');
$mainTitleIcon = 'fa-hand-spock-o';
$email = auth()->user()->email;
$pref = app('preferences')->get('remote_guard_alt_email', null);
if(null !== $pref) {
$email = $pref->data;
}
return view('admin.index', compact('title', 'mainTitleIcon'));
return view('admin.index', compact('title', 'mainTitleIcon','email'));
}
/**

View File

@@ -147,6 +147,12 @@ class EventServiceProvider extends ServiceProvider
$email = $user->email;
$ipAddress = Request::ip();
// see if user has alternative email address:
$pref = app('preferences')->getForUser($user, 'remote_guard_alt_email', null);
if (null !== $pref) {
$email = $pref->data;
}
Log::debug(sprintf('Now in EventServiceProvider::registerCreateEvents. Email is %s, IP is %s', $email, $ipAddress));
try {
Log::debug('Trying to send message...');

View File

@@ -78,6 +78,15 @@ class RemoteUserGuard implements Guard
/** @var User $user */
$user = $this->provider->retrieveById($userID);
// store email address if present in header and not already set.
$header = config('auth.guard_email');
$emailAddress = request()->server($header) ?? null;
$preference = app('preferences')->getForUser($user, 'remote_guard_alt_email', null);
if (null !== $emailAddress && null === $preference && $emailAddress !== $userID) {
app('preferences')->setForUser($user, 'remote_guard_alt_email', $emailAddress);
}
Log::debug(sprintf('Result of getting user from provider: %s', $user->email));
$this->user = $user;
}