Browse Source

Compare and store the login name via the event

Signed-off-by: Joas Schilling <coding@schilljs.com>
tags/v21.0.0beta7
Joas Schilling 3 years ago
parent
commit
6c1e294edd
No account linked to committer's email address

+ 6
- 3
apps/files_external/lib/Listener/StorePasswordListener.php View File

@@ -51,11 +51,14 @@ class StorePasswordListener implements IEventListener {
}

$stored = $this->credentialsManager->retrieve($event->getUser()->getUID(), LoginCredentials::CREDENTIALS_IDENTIFIER);
$update = $stored['password'] !== $event->getPassword();
if (!$update && $event instanceof UserLoggedInEvent) {
$update = $stored['user'] !== $event->getLoginName();
}

if ($stored && ($stored['user'] !== $event->getUser()->getUID()
|| $stored['password'] !== $event->getPassword())) {
if ($stored && $update) {
$credentials = [
'user' => $event->getUser()->getUID(),
'user' => $event->getLoginName(),
'password' => $event->getPassword()
];


+ 1
- 1
lib/private/Server.php View File

@@ -575,7 +575,7 @@ class Server extends ServerContainer implements IServerContainer {

/** @var IEventDispatcher $dispatcher */
$dispatcher = $this->get(IEventDispatcher::class);
$dispatcher->dispatchTyped(new UserLoggedInEvent($user, $password, $isTokenLogin));
$dispatcher->dispatchTyped(new UserLoggedInEvent($user, $loginName, $password, $isTokenLogin));
});
$userSession->listen('\OC\User', 'preRememberedLogin', function ($uid) {
/** @var IEventDispatcher $dispatcher */

+ 12
- 1
lib/public/User/Events/UserLoggedInEvent.php View File

@@ -43,14 +43,18 @@ class UserLoggedInEvent extends Event {
/** @var bool */
private $isTokenLogin;

/** @var string */
private $loginName;

/**
* @since 18.0.0
*/
public function __construct(IUser $user, string $password, bool $isTokenLogin) {
public function __construct(IUser $user, string $loginName, string $password, bool $isTokenLogin) {
parent::__construct();
$this->user = $user;
$this->password = $password;
$this->isTokenLogin = $isTokenLogin;
$this->loginName = $loginName;
}

/**
@@ -60,6 +64,13 @@ class UserLoggedInEvent extends Event {
return $this->user;
}

/**
* @since 21.0.0
*/
public function getLoginName(): string {
return $this->loginName;
}

/**
* @since 18.0.0
*/

Loading…
Cancel
Save