Browse Source

Add illyse dev LDAP to default settings for ldapdb
+ Correct basedn in LdapUser model

Fabs 11 years ago
parent
commit
f38c8ee21b
2 changed files with 43 additions and 40 deletions
  1. 39 37
      coin/members/models.py
  2. 4 3
      coin/settings.py

+ 39 - 37
coin/members/models.py

@@ -14,43 +14,6 @@ from django.core import exceptions
 import logging
 
 
-class LdapUser(ldapdb.models.Model):
-    # TODO: déplacer ligne suivante dans settings.py
-    base_dn = "ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR"
-    object_classes = ['inetOrgPerson', 'organizationalPerson', 'person', 'top']
-
-    uid = CharField(db_column='uid', unique=True, max_length=255)
-    nick_name = CharField(db_column='cn', unique=True, primary_key=True,
-                          max_length=255)
-    first_name = CharField(db_column='givenName', max_length=255)
-    last_name = CharField(db_column='sn', max_length=255)
-    display_name = CharField(db_column='displayName', max_length=255,
-                             blank=True)
-    password = CharField(db_column='userPassword', max_length=255)
-
-    def __unicode__(self):
-        return self.display_name
-
-    class Meta:
-        managed = False  # Indique à South de ne pas gérer le model LdapUser
-
-#Indique à South de ne pas gérer le model LdapUser
-add_ignored_fields(["^ldapdb\.models\.fields"])
-
-
-# Lors de la sauvegarde d'un utilisateur Ldap, cette fonction est exécutée
-# avant la sauvegare pour chiffrer le mot de passe s'il est définit
-# et s'il n'est pas déjà chiffré
-@receiver(pre_save, sender=LdapUser)
-def change_password(sender, instance, **kwargs):
-    # Si le mot de passe est définit et n'est pas déjà chiffré,
-    # alors ça le chiffre
-    if instance.password and not instance.password.startswith('{SSHA}'):
-        salt = os.urandom(8).encode('hex')
-        digest = hashlib.sha1(instance.password + salt).digest()
-        instance.password = '{SSHA}' + base64.b64encode(digest + salt)
-
-
 class Member(models.Model):
 
     MEMBER_TYPE_CHOICES = (
@@ -135,6 +98,45 @@ class MembershipFee(models.Model):
         return (u'%s - %s - %i€' % (self.member, self.start_date, self.amount))
 
 
+
+
+class LdapUser(ldapdb.models.Model):
+    # TODO: déplacer ligne suivante dans settings.py
+    base_dn = "ou=users,ou=unix,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR"
+    object_classes = ['inetOrgPerson', 'organizationalPerson', 'person', 'top']
+
+    uid = CharField(db_column='uid', unique=True, max_length=255)
+    nick_name = CharField(db_column='cn', unique=True, primary_key=True,
+                          max_length=255)
+    first_name = CharField(db_column='givenName', max_length=255)
+    last_name = CharField(db_column='sn', max_length=255)
+    display_name = CharField(db_column='displayName', max_length=255,
+                             blank=True)
+    password = CharField(db_column='userPassword', max_length=255)
+
+    def __unicode__(self):
+        return self.display_name
+
+    class Meta:
+        managed = False  # Indique à South de ne pas gérer le model LdapUser
+
+#Indique à South de ne pas gérer le model LdapUser
+add_ignored_fields(["^ldapdb\.models\.fields"])
+
+
+# Lors de la sauvegarde d'un utilisateur Ldap, cette fonction est exécutée
+# avant la sauvegare pour chiffrer le mot de passe s'il est définit
+# et s'il n'est pas déjà chiffré
+@receiver(pre_save, sender=LdapUser)
+def change_password(sender, instance, **kwargs):
+    # Si le mot de passe est définit et n'est pas déjà chiffré,
+    # alors ça le chiffre
+    if instance.password and not instance.password.startswith('{SSHA}'):
+        salt = os.urandom(8).encode('hex')
+        digest = hashlib.sha1(instance.password + salt).digest()
+        instance.password = '{SSHA}' + base64.b64encode(digest + salt)
+
+
 @receiver(post_save, sender=Member)
 def sync_ldap(sender, instance, created, **kwargs):
     """

+ 4 - 3
coin/settings.py

@@ -26,9 +26,10 @@ DATABASES = {
     },
     'ldap': {
         'ENGINE': 'ldapdb.backends.ldap',
-        'NAME': 'ldap://localhost/',
-        'USER': 'cn=admin,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR',
-        'PASSWORD': 'admin'
+        'NAME': 'ldap://ldapdev.illyse.org:390',
+        'TLS': True,
+        'USER': 'cn=illysedev,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR',
+        'PASSWORD': 'gfj83-E8ECgGh23JK_Ol12'
     }
 }