mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-08 03:08:29 +02:00
Add support for OIDC (#389)
* added support for oidc auth * fixed oidc usernames * hiding password for users that aren't logged in via local auth * add dependency, update settings * keep change password link * add tests * add docs --------- Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
This commit is contained in:
51
bookmarks/tests/test_oidc_support.py
Normal file
51
bookmarks/tests/test_oidc_support.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import importlib
|
||||
import os
|
||||
|
||||
from django.test import TestCase, override_settings
|
||||
from django.urls import URLResolver
|
||||
|
||||
|
||||
class OidcSupportTest(TestCase):
|
||||
def test_should_not_add_oidc_urls_by_default(self):
|
||||
siteroot_urls = importlib.import_module("siteroot.urls")
|
||||
importlib.reload(siteroot_urls)
|
||||
oidc_url_found = any(
|
||||
isinstance(urlpattern, URLResolver) and urlpattern.pattern._route == "oidc/"
|
||||
for urlpattern in siteroot_urls.urlpatterns
|
||||
)
|
||||
|
||||
self.assertFalse(oidc_url_found)
|
||||
|
||||
@override_settings(LD_ENABLE_OIDC=True)
|
||||
def test_should_add_oidc_urls_when_enabled(self):
|
||||
siteroot_urls = importlib.import_module("siteroot.urls")
|
||||
importlib.reload(siteroot_urls)
|
||||
oidc_url_found = any(
|
||||
isinstance(urlpattern, URLResolver) and urlpattern.pattern._route == "oidc/"
|
||||
for urlpattern in siteroot_urls.urlpatterns
|
||||
)
|
||||
|
||||
self.assertTrue(oidc_url_found)
|
||||
|
||||
def test_should_not_add_oidc_authentication_backend_by_default(self):
|
||||
base_settings = importlib.import_module("siteroot.settings.base")
|
||||
importlib.reload(base_settings)
|
||||
|
||||
self.assertListEqual(
|
||||
["django.contrib.auth.backends.ModelBackend"],
|
||||
base_settings.AUTHENTICATION_BACKENDS,
|
||||
)
|
||||
|
||||
def test_should_add_oidc_authentication_backend_when_enabled(self):
|
||||
os.environ["LD_ENABLE_OIDC"] = "True"
|
||||
base_settings = importlib.import_module("siteroot.settings.base")
|
||||
importlib.reload(base_settings)
|
||||
|
||||
self.assertListEqual(
|
||||
[
|
||||
"django.contrib.auth.backends.ModelBackend",
|
||||
"mozilla_django_oidc.auth.OIDCAuthenticationBackend",
|
||||
],
|
||||
base_settings.AUTHENTICATION_BACKENDS,
|
||||
)
|
||||
del os.environ["LD_ENABLE_OIDC"] # Remove the temporary environment variable
|
Reference in New Issue
Block a user