|
|
@@ -1,9 +1,10 @@
|
|
|
__package__ = 'plugins_auth.ldap'
|
|
|
-__label__ = 'ldap'
|
|
|
+__id__ = 'ldap'
|
|
|
+__label__ = 'LDAP'
|
|
|
__version__ = '2024.10.14'
|
|
|
-__author__ = 'Nick Sweeting'
|
|
|
+__author__ = 'ArchiveBox'
|
|
|
__homepage__ = 'https://github.com/django-auth-ldap/django-auth-ldap'
|
|
|
-# __dependencies__ = ['pip']
|
|
|
+__dependencies__ = ['pip']
|
|
|
|
|
|
import abx
|
|
|
|
|
|
@@ -11,22 +12,24 @@ import abx
|
|
|
@abx.hookimpl
|
|
|
def get_PLUGIN():
|
|
|
return {
|
|
|
- 'ldap': {
|
|
|
- 'PACKAGE': __package__,
|
|
|
- 'LABEL': __label__,
|
|
|
- 'VERSION': __version__,
|
|
|
- 'AUTHOR': __author__,
|
|
|
- 'HOMEPAGE': __homepage__,
|
|
|
- # 'DEPENDENCIES': __dependencies__,
|
|
|
+ __id__: {
|
|
|
+ 'id': __id__,
|
|
|
+ 'package': __package__,
|
|
|
+ 'label': __label__,
|
|
|
+ 'version': __version__,
|
|
|
+ 'author': __author__,
|
|
|
+ 'homepage': __homepage__,
|
|
|
+ 'dependencies': __dependencies__,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@abx.hookimpl
|
|
|
def get_CONFIG():
|
|
|
from .config import LDAP_CONFIG
|
|
|
-
|
|
|
return {
|
|
|
- 'ldap': LDAP_CONFIG
|
|
|
+ __id__: LDAP_CONFIG
|
|
|
}
|
|
|
|
|
|
@abx.hookimpl
|
|
|
@@ -39,6 +42,11 @@ def get_BINARIES():
|
|
|
|
|
|
|
|
|
def create_superuser_from_ldap_user(sender, user=None, ldap_user=None, **kwargs):
|
|
|
+ """
|
|
|
+ Invoked after LDAP authenticates a user, but before they have a local User account created.
|
|
|
+ ArchiveBox requires staff/superuser status to view the admin at all, so we must create a user
|
|
|
+ + set staff and superuser when LDAP authenticates a new person.
|
|
|
+ """
|
|
|
from django.conf import settings
|
|
|
|
|
|
if user is None:
|
|
|
@@ -53,9 +61,12 @@ def create_superuser_from_ldap_user(sender, user=None, ldap_user=None, **kwargs)
|
|
|
|
|
|
@abx.hookimpl
|
|
|
def ready():
|
|
|
+ """
|
|
|
+ Called at AppConfig.ready() time (settings + models are all loaded)
|
|
|
+ """
|
|
|
from django.conf import settings
|
|
|
|
|
|
if settings.CONFIGS.ldap.LDAP_ENABLED:
|
|
|
+ # tell django-auth-ldap to call our function when a user is authenticated via LDAP
|
|
|
import django_auth_ldap.backend
|
|
|
django_auth_ldap.backend.populate_user.connect(create_superuser_from_ldap_user)
|
|
|
-
|