mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Fix error when running scripts
This fixes the error Can't pickle local object 'LDAPBackend.__new__.<locals>.NBLDAPBackend'
This commit is contained in:
@ -140,11 +140,25 @@ class RemoteUserBackend(_RemoteUserBackend):
|
||||
return False
|
||||
|
||||
|
||||
# Create a new instance of django-auth-ldap's LDAPBackend with our own ObjectPermissions
|
||||
try:
|
||||
from django_auth_ldap.backend import LDAPBackend as LDAPBackend_
|
||||
|
||||
class NBLDAPBackend(ObjectPermissionMixin, LDAPBackend_):
|
||||
def get_permission_filter(self, user_obj):
|
||||
permission_filter = super().get_permission_filter(user_obj)
|
||||
if self.settings.FIND_GROUP_PERMS:
|
||||
permission_filter = permission_filter | Q(groups__name__in=user_obj.ldap_user.group_names)
|
||||
return permission_filter
|
||||
except ModuleNotFoundError:
|
||||
pass
|
||||
|
||||
|
||||
class LDAPBackend:
|
||||
|
||||
def __new__(cls, *args, **kwargs):
|
||||
try:
|
||||
from django_auth_ldap.backend import LDAPBackend as LDAPBackend_, LDAPSettings
|
||||
from django_auth_ldap.backend import LDAPSettings
|
||||
import ldap
|
||||
except ModuleNotFoundError as e:
|
||||
if getattr(e, 'name') == 'django_auth_ldap':
|
||||
@ -170,14 +184,6 @@ class LDAPBackend:
|
||||
"Required parameter AUTH_LDAP_SERVER_URI is missing from ldap_config.py."
|
||||
)
|
||||
|
||||
# Create a new instance of django-auth-ldap's LDAPBackend with our own ObjectPermissions
|
||||
class NBLDAPBackend(ObjectPermissionMixin, LDAPBackend_):
|
||||
def get_permission_filter(self, user_obj):
|
||||
permission_filter = super().get_permission_filter(user_obj)
|
||||
if self.settings.FIND_GROUP_PERMS:
|
||||
permission_filter = permission_filter | Q(groups__name__in=user_obj.ldap_user.group_names)
|
||||
return permission_filter
|
||||
|
||||
obj = NBLDAPBackend()
|
||||
|
||||
# Read LDAP configuration parameters from ldap_config.py instead of settings.py
|
||||
|
Reference in New Issue
Block a user