This commit is contained in:
the-djmaze 2024-09-16 10:15:30 +02:00
parent ed41d8e45f
commit 61e7c00b62
2 changed files with 6 additions and 4 deletions

View file

@ -92,7 +92,8 @@ class SnappyMailHelper
if ($doLogin && $aCredentials[1] && $aCredentials[2]) { if ($doLogin && $aCredentials[1] && $aCredentials[2]) {
try { try {
$ocSession = \OC::$server->getSession(); $ocSession = \OC::$server->getSession();
if ($ocSession->get('is_oidc')) { if (true === $aCredentials[2]) {
// OIDC
$pwd = new \SnappyMail\SensitiveString($aCredentials[1]); $pwd = new \SnappyMail\SensitiveString($aCredentials[1]);
$oAccount = $oActions->LoginProcess($aCredentials[1], $pwd); $oAccount = $oActions->LoginProcess($aCredentials[1], $pwd);
if ($oAccount) { if ($oAccount) {
@ -102,7 +103,7 @@ class SnappyMailHelper
$oAccount = $oActions->LoginProcess($aCredentials[1], $aCredentials[2]); $oAccount = $oActions->LoginProcess($aCredentials[1], $aCredentials[2]);
if ($oAccount && $oConfig->Get('login', 'sign_me_auto', \RainLoop\Enumerations\SignMeType::DefaultOff) === \RainLoop\Enumerations\SignMeType::DefaultOn) { if ($oAccount && $oConfig->Get('login', 'sign_me_auto', \RainLoop\Enumerations\SignMeType::DefaultOff) === \RainLoop\Enumerations\SignMeType::DefaultOn) {
$oActions->SetSignMeToken($oAccount); $oActions->SetSignMeToken($oAccount);
} }
} }
} catch (\Throwable $e) { } catch (\Throwable $e) {
// Login failure, reset password to prevent more attempts // Login failure, reset password to prevent more attempts
@ -155,9 +156,9 @@ class SnappyMailHelper
if ($config->getAppValue('snappymail', 'snappymail-autologin-oidc', false)) { if ($config->getAppValue('snappymail', 'snappymail-autologin-oidc', false)) {
if ($ocSession->get('is_oidc')) { if ($ocSession->get('is_oidc')) {
// IToken->getPassword() ??? // IToken->getPassword() ???
if ($sAccessToken = $ocSession->get('oidc_access_token')) { if ($ocSession->get('oidc_access_token')) {
$sEmail = $config->getUserValue($sUID, 'settings', 'email'); $sEmail = $config->getUserValue($sUID, 'settings', 'email');
return [$sUID, $sEmail, $sAccessToken]; return [$sUID, $sEmail, true];
} }
\SnappyMail\Log::debug('Nextcloud', 'OIDC access_token missing'); \SnappyMail\Log::debug('Nextcloud', 'OIDC access_token missing');
} else { } else {

View file

@ -109,6 +109,7 @@ class NextcloudPlugin extends \RainLoop\Plugins\AbstractPlugin
&& \OC::$server->getSession()->get('is_oidc') && \OC::$server->getSession()->get('is_oidc')
&& $sNcEmail === $oSettings->username && $sNcEmail === $oSettings->username
&& !$bAccountDefinedExplicitly && !$bAccountDefinedExplicitly
&& $oAccount instanceof \RainLoop\Model\MainAccount
// && $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');