Browse Source

Minor refactor

Fabs 11 years ago
parent
commit
d8c0c6d2f6
2 changed files with 12 additions and 1 deletions
  1. 4 1
      coin/members/models.py
  2. 8 0
      coin/members/tests.py

+ 4 - 1
coin/members/models.py

@@ -290,7 +290,7 @@ def define_member_user(sender, request, user, **kwargs):
     et l'utilisateur en définissant le champ user du model membre ayant le
     et l'utilisateur en définissant le champ user du model membre ayant le
     ldap_cn utilisé pour la connexion
     ldap_cn utilisé pour la connexion
     """
     """
-    if not user.is_superuser:
+    try:
         member = Member.objects.get(ldap_cn=user.username)
         member = Member.objects.get(ldap_cn=user.username)
         if not member.user:
         if not member.user:
             member.user = user
             member.user = user
@@ -299,6 +299,9 @@ def define_member_user(sender, request, user, **kwargs):
             raise Exception('Un membre avec cet ldap_cn existe en base de donnée '
             raise Exception('Un membre avec cet ldap_cn existe en base de donnée '
                             'mais l\'utilisateur auquel il est rattaché ne '
                             'mais l\'utilisateur auquel il est rattaché ne '
                             'correspond pas.')
                             'correspond pas.')
+    except Member.DoesNotExist:
+        if not user.is_superuser:
+            raise
 
 
 
 
 #==============================================================================
 #==============================================================================

+ 8 - 0
coin/members/tests.py

@@ -166,10 +166,12 @@ class MemberTests(TestCase):
         Test que lors de la sauvegarde d'un membre et que la sauvegarde en LDAP
         Test que lors de la sauvegarde d'un membre et que la sauvegarde en LDAP
         échoue (ici mauvais mot de passe), rien n'est sauvegardé en base
         échoue (ici mauvais mot de passe), rien n'est sauvegardé en base
         """
         """
+
         # Fait échouer le LDAP en définissant un mauvais mot de passe
         # Fait échouer le LDAP en définissant un mauvais mot de passe
         for dbconnection in db.connections.all():
         for dbconnection in db.connections.all():
             if (type(dbconnection) is
             if (type(dbconnection) is
                     ldapdb.backends.ldap.base.DatabaseWrapper):
                     ldapdb.backends.ldap.base.DatabaseWrapper):
+                dbconnection.settings_dict['PREVIOUSPASSWORD'] = dbconnection.settings_dict['PASSWORD']
                 dbconnection.settings_dict['PASSWORD'] = 'wrong password test'
                 dbconnection.settings_dict['PASSWORD'] = 'wrong password test'
 
 
         # Créé un membre
         # Créé un membre
@@ -187,6 +189,12 @@ class MemberTests(TestCase):
         with self.assertRaises(Member.DoesNotExist):
         with self.assertRaises(Member.DoesNotExist):
             Member.objects.get(ldap_cn=ldap_cn)
             Member.objects.get(ldap_cn=ldap_cn)
 
 
+        # Restaure le mot de passe pour les tests suivants
+        for dbconnection in db.connections.all():
+            if (type(dbconnection) is
+                    ldapdb.backends.ldap.base.DatabaseWrapper):
+                dbconnection.settings_dict['PASSWORD'] = dbconnection.settings_dict['PREVIOUSPASSWORD']
+
     def test_when_user_login_member_user_field_is_updated(self):
     def test_when_user_login_member_user_field_is_updated(self):
         """
         """
         Test que lorqu'un utilisateur se connect, le champ user du membre
         Test que lorqu'un utilisateur se connect, le champ user du membre