Fix rdn for multiple user spaces
This commit is contained in:
parent
c7feccea56
commit
c35c59ebfc
@ -1,15 +1,9 @@
|
|||||||
from django.db import models
|
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
from django.db import models
|
|
||||||
from django.contrib.auth.models import User
|
|
||||||
from django.db.models.signals import post_save
|
|
||||||
from django.dispatch import receiver
|
|
||||||
import ldapdb.models
|
|
||||||
from ldapdb.models import fields as ldap_fields
|
from ldapdb.models import fields as ldap_fields
|
||||||
|
from ldapdb.models.base import Model
|
||||||
|
|
||||||
|
|
||||||
class LdapUser(ldapdb.models.Model):
|
class LdapUser(Model):
|
||||||
"""
|
"""
|
||||||
Class for representing an LDAP user entry.
|
Class for representing an LDAP user entry.
|
||||||
"""
|
"""
|
||||||
@ -29,6 +23,18 @@ class LdapUser(ldapdb.models.Model):
|
|||||||
mobile_phone = ldap_fields.CharField(db_column='mobile', blank=True)
|
mobile_phone = ldap_fields.CharField(db_column='mobile', blank=True)
|
||||||
photo = ldap_fields.ImageField(db_column='jpegPhoto')
|
photo = ldap_fields.ImageField(db_column='jpegPhoto')
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.rdn = kwargs.get('rdn', None)
|
||||||
|
if self.rdn:
|
||||||
|
del kwargs['rdn']
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def build_dn(self):
|
||||||
|
"""
|
||||||
|
Build the Distinguished Name for this entry.
|
||||||
|
"""
|
||||||
|
return "%s,%s,%s" % (self.build_rdn(), self.rdn, self.base_dn)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.username
|
return self.username
|
||||||
|
|
||||||
@ -36,7 +42,7 @@ class LdapUser(ldapdb.models.Model):
|
|||||||
return self.full_name
|
return self.full_name
|
||||||
|
|
||||||
|
|
||||||
class LdapGroup(ldapdb.models.Model):
|
class LdapGroup(Model):
|
||||||
"""
|
"""
|
||||||
Class for representing an LDAP group entry.
|
Class for representing an LDAP group entry.
|
||||||
"""
|
"""
|
||||||
@ -49,6 +55,18 @@ class LdapGroup(ldapdb.models.Model):
|
|||||||
name = ldap_fields.CharField(db_column='cn', max_length=200, primary_key=True)
|
name = ldap_fields.CharField(db_column='cn', max_length=200, primary_key=True)
|
||||||
members = ldap_fields.ListField(db_column='member')
|
members = ldap_fields.ListField(db_column='member')
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.rdn = kwargs.get('rdn', None)
|
||||||
|
if self.rdn:
|
||||||
|
del kwargs['rdn']
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def build_dn(self):
|
||||||
|
"""
|
||||||
|
Build the Distinguished Name for this entry.
|
||||||
|
"""
|
||||||
|
return "%s,%s,%s" % (self.build_rdn(), self.rdn, self.base_dn)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|||||||
@ -19,17 +19,17 @@ def userlist(request):
|
|||||||
user = LdapUser.objects.all()
|
user = LdapUser.objects.all()
|
||||||
context = {'users': user, }
|
context = {'users': user, }
|
||||||
# ldap_user = LdapUser.objects.get(username='fred')
|
# ldap_user = LdapUser.objects.get(username='fred')
|
||||||
# ldap_user = LdapUser.objects.create(rdn='ou=people,ou=fs_sowi,ou=fachschaften', username='a123456789',
|
# ldap_user = LdapUser.objects.create(rdn='ou=people,ou=fs_wiai,ou=fachschaften', username='b3',
|
||||||
# password='lappen1', first_name='ferdinand1',
|
# password='lappen1', first_name='ferdinand1',
|
||||||
# last_name='red1', )
|
# last_name='red1', )
|
||||||
# new_group = LdapGroup.objects.create(rdn='ou=groups,ou=fs_sowi,ou=fachschaften', name="funny_sowi1",
|
# new_group = LdapGroup.objects.create(rdn='ou=groups,ou=fs_wiai,ou=fachschaften', name="funny_wiai12",
|
||||||
# members = ['dc=stuve,dc=de'])
|
# members=['dc=stuve,dc=de'])
|
||||||
# new_group.save()
|
# new_group.save()
|
||||||
|
|
||||||
return render(request, 'user_list.jinja', context)
|
return render(request, 'user_list.jinja', context)
|
||||||
|
|
||||||
|
|
||||||
def changelist(request, dn):
|
def changelist(request, dn):
|
||||||
user = User.objects.get(id=uid)
|
user = User.objects.get(dn=dn)
|
||||||
context = {'user': user, }
|
context = {'user': user, }
|
||||||
return render(request, 'user_detail.jinja', context)
|
return render(request, 'user_detail.jinja', context)
|
||||||
|
|||||||
Reference in New Issue
Block a user