mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-12-31 03:52:01 +08:00
Use Nextcloud 18+ IEventDispatcher
This commit is contained in:
parent
009b76de24
commit
3664b140c4
1 changed files with 17 additions and 8 deletions
|
@ -13,6 +13,8 @@ use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
||||||
use OCP\AppFramework\Bootstrap\IBootContext;
|
use OCP\AppFramework\Bootstrap\IBootContext;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use OCP\IUser;
|
use OCP\IUser;
|
||||||
|
use OCP\User\Events\PostLoginEvent;
|
||||||
|
use OCP\User\Events\BeforeUserLoggedOutEvent;
|
||||||
|
|
||||||
class Application extends App implements IBootstrap
|
class Application extends App implements IBootstrap
|
||||||
{
|
{
|
||||||
|
@ -80,29 +82,36 @@ class Application extends App implements IBootstrap
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$userSession = \OC::$server->getUserSession();
|
$dispatcher = $container->query('OCP\EventDispatcher\IEventDispatcher');
|
||||||
// $userSession->listen('\OC\User', 'postRememberedLogin', function($loginName, $password) {
|
$this->dispatcher->addListener(PostLoginEvent::class, function (PostLoginEvent $Event) {
|
||||||
$userSession->listen('\OC\User', 'postLogin', function($user, $loginName, $password, $isTokenLogin) {
|
|
||||||
$config = \OC::$server->getConfig();
|
$config = \OC::$server->getConfig();
|
||||||
// Only store the user's password in the current session if they have
|
// Only store the user's password in the current session if they have
|
||||||
// enabled auto-login using Nextcloud username or email address.
|
// enabled auto-login using Nextcloud username or email address.
|
||||||
if ($config->getAppValue('snappymail', 'snappymail-autologin', false)
|
if ($config->getAppValue('snappymail', 'snappymail-autologin', false)
|
||||||
|| $config->getAppValue('snappymail', 'snappymail-autologin-with-email', false)) {
|
|| $config->getAppValue('snappymail', 'snappymail-autologin-with-email', false)) {
|
||||||
$sUID = $user->getUID();
|
$sUID = $Event->getUser()->getUID();
|
||||||
\OC::$server->getSession()['snappymail-nc-uid'] = $sUID;
|
\OC::$server->getSession()['snappymail-nc-uid'] = $sUID;
|
||||||
\OC::$server->getSession()['snappymail-password'] = SnappyMailHelper::encodePassword($password, $sUID);
|
\OC::$server->getSession()['snappymail-password'] = SnappyMailHelper::encodePassword($Event->getPassword(), $sUID);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$userSession->listen('\OC\User', 'logout', function($user) {
|
$this->dispatcher->addListener(BeforeUserLoggedOutEvent::class, function (BeforeUserLoggedOutEvent $Event) {
|
||||||
\OC::$server->getSession()['snappymail-password'] = '';
|
\OC::$server->getSession()['snappymail-password'] = '';
|
||||||
SnappyMailHelper::loadApp();
|
SnappyMailHelper::loadApp();
|
||||||
\RainLoop\Api::Actions()->Logout(true);
|
\RainLoop\Api::Actions()->Logout(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// https://github.com/nextcloud/impersonate/issues/179
|
// https://github.com/nextcloud/impersonate/issues/179
|
||||||
$userSession->listen('\OC\User', 'impersonate', function($user, $newUser) {
|
// https://github.com/nextcloud/impersonate/pull/180
|
||||||
|
$class = 'OCA\Impersonate\Events\ImpersonateEvent';
|
||||||
|
if (\class_exists($class)) {
|
||||||
|
$this->dispatcher->addListener($class, function ($Event) {
|
||||||
|
\OC::$server->getSession()['snappymail-password'] = '';
|
||||||
|
SnappyMailHelper::loadApp();
|
||||||
|
\RainLoop\Api::Actions()->Logout(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
\OC::$server->getUserSession()->listen('\OC\User', 'impersonate', function($user, $newUser) {
|
||||||
\OC::$server->getSession()['snappymail-password'] = '';
|
\OC::$server->getSession()['snappymail-password'] = '';
|
||||||
SnappyMailHelper::loadApp();
|
SnappyMailHelper::loadApp();
|
||||||
\RainLoop\Api::Actions()->Logout(true);
|
\RainLoop\Api::Actions()->Logout(true);
|
||||||
|
|
Loading…
Reference in a new issue