mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-25 10:09:20 +03:00
Nextcloud session['snappymail-password'] to session['snappymail-passphrase']
This commit is contained in:
parent
d784c61076
commit
106765e384
3 changed files with 20 additions and 9 deletions
|
|
@ -75,20 +75,24 @@ class Application extends App implements IBootstrap
|
|||
|
||||
$dispatcher = $context->getAppContainer()->query('OCP\EventDispatcher\IEventDispatcher');
|
||||
$dispatcher->addListener(PostLoginEvent::class, function (PostLoginEvent $Event) {
|
||||
/*
|
||||
$config = \OC::$server->getConfig();
|
||||
// Only store the user's password in the current session if they have
|
||||
// enabled auto-login using Nextcloud username or email address.
|
||||
if ($config->getAppValue('snappymail', 'snappymail-autologin', false)
|
||||
|| $config->getAppValue('snappymail', 'snappymail-autologin-with-email', false)) {
|
||||
*/
|
||||
$sUID = $Event->getUser()->getUID();
|
||||
\OC::$server->getSession()['snappymail-nc-uid'] = $sUID;
|
||||
\OC::$server->getSession()['snappymail-password'] = SnappyMailHelper::encodePassword($Event->getPassword(), $sUID);
|
||||
\OC::$server->getSession()['snappymail-passphrase'] = SnappyMailHelper::encodePassword($Event->getPassword(), $sUID);
|
||||
/*
|
||||
}
|
||||
*/
|
||||
});
|
||||
|
||||
$dispatcher->addListener(BeforeUserLoggedOutEvent::class, function (BeforeUserLoggedOutEvent $Event) {
|
||||
// https://github.com/nextcloud/server/issues/36083#issuecomment-1387370634
|
||||
// \OC::$server->getSession()['snappymail-password'] = '';
|
||||
// \OC::$server->getSession()['snappymail-passphrase'] = '';
|
||||
SnappyMailHelper::loadApp();
|
||||
// \RainLoop\Api::Actions()->Logout(true);
|
||||
\RainLoop\Api::Actions()->DoLogout();
|
||||
|
|
@ -99,12 +103,12 @@ class Application extends App implements IBootstrap
|
|||
$class = 'OCA\Impersonate\Events\BeginImpersonateEvent';
|
||||
if (\class_exists($class)) {
|
||||
$dispatcher->addListener($class, function ($Event) {
|
||||
\OC::$server->getSession()['snappymail-password'] = '';
|
||||
\OC::$server->getSession()['snappymail-passphrase'] = '';
|
||||
SnappyMailHelper::loadApp();
|
||||
\RainLoop\Api::Actions()->Logout(true);
|
||||
});
|
||||
$dispatcher->addListener('OCA\Impersonate\Events\EndImpersonateEvent', function ($Event) {
|
||||
\OC::$server->getSession()['snappymail-password'] = '';
|
||||
\OC::$server->getSession()['snappymail-passphrase'] = '';
|
||||
SnappyMailHelper::loadApp();
|
||||
\RainLoop\Api::Actions()->Logout(true);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ class SnappyMailHelper
|
|||
} catch (\Throwable $e) {
|
||||
// Login failure, reset password to prevent more attempts
|
||||
$sUID = \OC::$server->getUserSession()->getUser()->getUID();
|
||||
\OC::$server->getSession()['snappymail-password'] = '';
|
||||
\OC::$server->getSession()['snappymail-passphrase'] = '';
|
||||
\OC::$server->getConfig()->setUserValue($sUID, 'snappymail', 'snappymail-password', '');
|
||||
}
|
||||
}
|
||||
|
|
@ -165,16 +165,18 @@ class SnappyMailHelper
|
|||
$sPassword = '';
|
||||
if ($config->getAppValue('snappymail', 'snappymail-autologin', false)) {
|
||||
$sEmail = $sUID;
|
||||
$sPassword = $ocSession['snappymail-password'];
|
||||
$sPassword = $ocSession['snappymail-passphrase'];
|
||||
} else if ($config->getAppValue('snappymail', 'snappymail-autologin-with-email', false)) {
|
||||
$sEmail = $config->getUserValue($sUID, 'settings', 'email');
|
||||
$sPassword = $ocSession['snappymail-password'];
|
||||
$sPassword = $ocSession['snappymail-passphrase'];
|
||||
} else {
|
||||
\SnappyMail\Log::debug('Nextcloud', 'snappymail-autologin is off');
|
||||
}
|
||||
if ($sPassword) {
|
||||
return [$sUID, $sEmail, static::decodePassword($sPassword, $sUID)];
|
||||
}
|
||||
} else {
|
||||
\SnappyMail\Log::debug('Nextcloud', "snappymail-nc-uid mismatch '{$ocSession['snappymail-nc-uid']}' != '{$sUID}'");
|
||||
}
|
||||
|
||||
return [$sUID, '', ''];
|
||||
|
|
|
|||
|
|
@ -250,8 +250,13 @@ class NextcloudPlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
$aResult['ContactsSync']['User'] = $sUID;
|
||||
$bSave = true;
|
||||
}
|
||||
if (empty($aResult['ContactsSync']['Password'])) {
|
||||
$aResult['ContactsSync']['Password'] = '';
|
||||
$pass = \OC::$server->getSession()['snappymail-passphrase'];
|
||||
if ($pass/* && empty($aResult['ContactsSync']['Password'])*/) {
|
||||
$pass = \SnappyMail\Crypt::DecryptUrlSafe($pass, $sUID);
|
||||
if ($pass) {
|
||||
$aResult['ContactsSync']['Password'] = $pass;
|
||||
$bSave = true;
|
||||
}
|
||||
}
|
||||
if ($bSave) {
|
||||
$oActions = \RainLoop\Api::Actions();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue