Fix events for LDAP

This commit is contained in:
James Cole 2021-07-17 17:26:12 +02:00
parent 2c943e0d53
commit fae8c05e71
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D
3 changed files with 23 additions and 8 deletions

View File

@ -38,20 +38,18 @@ class LDAPEventHandler
*/
public function importedUser(Imported $event)
{
Log::debug(sprintf('Now in %s', __METHOD__));
/** @var User $user */
$user = $event->eloquent;
$alternative = User::where('email', $user->email)->where('id', '!=', $user->id)->first();
if (null !== $alternative) {
// already a user exists with these records.
// copy objectguid and domain
// then logout
Log::debug(sprintf('User #%d is created but user #%d already exists.', $user->id, $alternative->id));
$alternative->objectguid = $user->objectguid;
$alternative->domain = $user->domain;
$alternative->save();
$user->delete();
auth()->logout();
}
Log::debug('HERE WE ARE');
}
}

View File

@ -29,6 +29,7 @@ use FireflyIII\Events\DetectedNewIPAddress;
use FireflyIII\Events\RegisteredUser;
use FireflyIII\Events\RequestedNewPassword;
use FireflyIII\Events\UserChangedEmail;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Mail\ConfirmEmailChangeMail;
use FireflyIII\Mail\NewIPAddressWarningMail;
use FireflyIII\Mail\RegisteredUser as RegisteredUserMail;
@ -190,6 +191,7 @@ class UserEventHandler
} catch (Exception $e) { // @phpstan-ignore-line
Log::error($e->getMessage());
}
return true;
}
@ -216,6 +218,7 @@ class UserEventHandler
} catch (Exception $e) { // @phpstan-ignore-line
Log::error($e->getMessage());
}
return true;
}
@ -241,6 +244,7 @@ class UserEventHandler
} catch (Exception $e) { // @phpstan-ignore-line
Log::error($e->getMessage());
}
return true;
}
@ -283,6 +287,7 @@ class UserEventHandler
/**
* @param Login $event
*
* @throws \FireflyIII\Exceptions\FireflyException
*/
public function storeUserIPAddress(Login $event): void
@ -290,9 +295,16 @@ class UserEventHandler
/** @var User $user */
$user = $event->user;
/** @var array $preference */
$preference = app('preferences')->getForUser($user, 'login_ip_history', [])->data;
$inArray = false;
$ip = request()->ip();
try {
$preference = app('preferences')->getForUser($user, 'login_ip_history', [])->data;
} catch (FireflyException $e) {
// don't care.
Log::error($e->getMessage());
return;
}
$inArray = false;
$ip = request()->ip();
Log::debug(sprintf('User logging in from IP address %s', $ip));
// update array if in array

View File

@ -29,6 +29,7 @@ use FireflyIII\Models\Preference;
use FireflyIII\User;
use Illuminate\Support\Collection;
use Log;
use PDOException;
use Session;
/**
@ -297,7 +298,11 @@ class Preferences
$pref->name = $name;
}
$pref->data = $value;
$pref->save();
try {
$pref->save();
} catch(PDOException $e) {
throw new FireflyException(sprintf('Could not save preference: %s', $e->getMessage()), 0, $e);
}
Cache::forever($fullName, $pref);
return $pref;