mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 07:35:55 +08:00
Also check if the account has been defined in setting
This commit is contained in:
parent
25428c7e9d
commit
ae74f21242
|
@ -90,15 +90,24 @@ class NextcloudPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
public function beforeLogin(\RainLoop\Model\Account $oAccount, \MailSo\Net\NetClient $oClient, \MailSo\Net\ConnectSettings $oSettings) : void
|
public function beforeLogin(\RainLoop\Model\Account $oAccount, \MailSo\Net\NetClient $oClient, \MailSo\Net\ConnectSettings $oSettings) : void
|
||||||
{
|
{
|
||||||
// https://apps.nextcloud.com/apps/oidc_login
|
// https://apps.nextcloud.com/apps/oidc_login
|
||||||
$ocUser = \OC::$server->getUserSession()->getUser();
|
$config = \OC::$server->getConfig();
|
||||||
$sNcEmail = $ocUser->getEMailAddress() ?: $ocUser->getPrimaryEMailAddress();
|
$oUser = \OC::$server->getUserSession()->getUser();
|
||||||
|
$sUID = $oUser->getUID();
|
||||||
|
|
||||||
|
$sEmail = $config->getUserValue($sUID, 'snappymail', 'snappymail-email');
|
||||||
|
$sPassword = $config->getUserValue($sUID, 'snappymail', 'passphrase')
|
||||||
|
?: $config->getUserValue($sUID, 'snappymail', 'snappymail-password');
|
||||||
|
$bAccountDefinedExplicitly = ($sEmail && $sPassword) && $sEmail === $oSettings->username;
|
||||||
|
|
||||||
|
$sNcEmail = $oUser->getEMailAddress() ?: $oUser->getPrimaryEMailAddress();
|
||||||
|
|
||||||
// Only login with OIDC access token if
|
// Only login with OIDC access token if
|
||||||
// it is enabled in config, the user is currently logged in with OIDC
|
// it is enabled in config, the user is currently logged in with OIDC,
|
||||||
// and the current snappymail account is the OIDC account
|
// the current snappymail account is the OIDC account and no account defined explicitly
|
||||||
if (\OC::$server->getConfig()->getAppValue('snappymail', 'snappymail-autologin-oidc', false)
|
if (\OC::$server->getConfig()->getAppValue('snappymail', 'snappymail-autologin-oidc', false)
|
||||||
&& \OC::$server->getSession()->get('is_oidc')
|
&& \OC::$server->getSession()->get('is_oidc')
|
||||||
&& $sNcEmail === $oSettings->username
|
&& $sNcEmail === $oSettings->username
|
||||||
|
&& !$bAccountDefinedExplicitly
|
||||||
// && $oClient->supportsAuthType('OAUTHBEARER') // v2.28
|
// && $oClient->supportsAuthType('OAUTHBEARER') // v2.28
|
||||||
) {
|
) {
|
||||||
$sAccessToken = \OC::$server->getSession()->get('oidc_access_token');
|
$sAccessToken = \OC::$server->getSession()->get('oidc_access_token');
|
||||||
|
|
Loading…
Reference in a new issue