Make password enabled configurable via oauth settings

This commit is contained in:
Igor Scheller 2021-12-10 01:22:02 +01:00 committed by msquare
parent b5ba5f6188
commit d8076abc38
4 changed files with 10 additions and 0 deletions

View File

@ -108,6 +108,8 @@ return [
'hidden' => false, 'hidden' => false,
// Mark user as arrived when using this provider (optional) // Mark user as arrived when using this provider (optional)
'mark_arrived' => false, 'mark_arrived' => false,
// If the password field should be enabled on registration (optional)
'enable_password' => false,
// Allow registration even if disabled in config (optional) // Allow registration even if disabled in config (optional)
'allow_registration' => null, 'allow_registration' => null,
// Auto join teams // Auto join teams

View File

@ -76,6 +76,11 @@ function guest_register()
} }
} }
$oauth_enable_password = $session->get('oauth2_enable_password');
if (!is_null($oauth_enable_password)) {
$enable_password = $oauth_enable_password;
}
if ( if (
!auth()->can('register') // No registration permission !auth()->can('register') // No registration permission
// Not authenticated and // Not authenticated and

View File

@ -372,6 +372,7 @@ class OAuthController extends BaseController
'email' => null, 'email' => null,
'first_name' => null, 'first_name' => null,
'last_name' => null, 'last_name' => null,
'enable_password' => false,
'allow_registration' => null, 'allow_registration' => null,
'groups' => null, 'groups' => null,
], ],
@ -400,6 +401,7 @@ class OAuthController extends BaseController
$this->session->set('oauth2_access_token', $accessToken->getToken()); $this->session->set('oauth2_access_token', $accessToken->getToken());
$this->session->set('oauth2_refresh_token', $accessToken->getRefreshToken()); $this->session->set('oauth2_refresh_token', $accessToken->getRefreshToken());
$this->session->set('oauth2_expires_at', $expirationTime); $this->session->set('oauth2_expires_at', $expirationTime);
$this->session->set('oauth2_enable_password', $config['enable_password']);
$this->session->set('oauth2_allow_registration', $config['allow_registration']); $this->session->set('oauth2_allow_registration', $config['allow_registration']);
return $this->redirector->to('/register'); return $this->redirector->to('/register');

View File

@ -427,6 +427,7 @@ class OAuthControllerTest extends TestCase
$this->assertEquals('test-token', $this->session->get('oauth2_access_token')); $this->assertEquals('test-token', $this->session->get('oauth2_access_token'));
$this->assertEquals('test-refresh-token', $this->session->get('oauth2_refresh_token')); $this->assertEquals('test-refresh-token', $this->session->get('oauth2_refresh_token'));
$this->assertEquals(4242424242, $this->session->get('oauth2_expires_at')->unix()); $this->assertEquals(4242424242, $this->session->get('oauth2_expires_at')->unix());
$this->assertFalse($this->session->get('oauth2_enable_password'));
$this->assertEquals(null, $this->session->get('oauth2_allow_registration')); $this->assertEquals(null, $this->session->get('oauth2_allow_registration'));
$this->assertEquals( $this->assertEquals(
[ [