def test_custom_social_auth_backend_prefix_sso_enabled_false(self): """ Test specifying custom social auth backend prefix for custom auth plugins with no matching custom backend. """ self.assertEqual(settings.SOCIAL_AUTH_BACKEND_PREFIX, "custom_auth.backend") self.assertFalse(sso_auth_enabled(tuple(TEST_AUTHENTICATION_BACKENDS)))
def test_default_social_auth_backend_prefix_sso_enabled_true(self): """ Test default check for 'social_core.backends' with backend specified that starts with default backend prefix. """ self.assertTrue( sso_auth_enabled( ("social_core.backends.google.GoogleOauth2", "nautobot.core.authentication.ObjectPermissionBackend")))
def sso_auth(request): """ Expose SSO-related variables for use in generating login URL fragments for external authentication providers. """ return { "SAML_IDP": get_saml_idp, "SSO_AUTH_ENABLED": lambda: sso_auth_enabled(django_settings.AUTHENTICATION_BACKENDS), }
def test_custom_social_auth_backend_prefix_sso_enabled_true(self): """ Test specifying custom social auth backend prefix for custom auth plugins return True with matching backend prefix. """ self.assertEqual(settings.SOCIAL_AUTH_BACKEND_PREFIX, "custom_auth.backend") self.assertTrue( sso_auth_enabled( ("custom_auth.backend.pingid", "nautobot.core.authentication.ObjectPermissionBackend")))
def process_request(self, request): # Bypass middleware if external authentication is not enabled # Session middleware handles attaching the user to the request backends_enabled = ( remote_auth_enabled(auth_backends=settings.AUTHENTICATION_BACKENDS), sso_auth_enabled(auth_backends=settings.AUTHENTICATION_BACKENDS), ldap_auth_enabled(auth_backends=settings.AUTHENTICATION_BACKENDS), ) if not any(backends_enabled) or not request.user.is_authenticated: return if settings.EXTERNAL_AUTH_DEFAULT_GROUPS: # Assign default groups to the user assign_groups_to_user(request.user, settings.EXTERNAL_AUTH_DEFAULT_GROUPS) if settings.EXTERNAL_AUTH_DEFAULT_PERMISSIONS: # Assign default object permissions to the user assign_permissions_to_user(request.user, settings.EXTERNAL_AUTH_DEFAULT_PERMISSIONS)
def test_default_social_auth_backend_prefix_sso_enabled_false(self): """ Test default check for 'social_core.backends' with no backends specified that startswith prefix. """ self.assertFalse(sso_auth_enabled(tuple(TEST_AUTHENTICATION_BACKENDS)))