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
     ldap_cn utilisé pour la connexion
     """
-    if not user.is_superuser:
+    try:
         member = Member.objects.get(ldap_cn=user.username)
         if not member.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 '
                             'mais l\'utilisateur auquel il est rattaché ne '
                             '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
         échoue (ici mauvais mot de passe), rien n'est sauvegardé en base
         """
+
         # Fait échouer le LDAP en définissant un mauvais mot de passe
         for dbconnection in db.connections.all():
             if (type(dbconnection) is
                     ldapdb.backends.ldap.base.DatabaseWrapper):
+                dbconnection.settings_dict['PREVIOUSPASSWORD'] = dbconnection.settings_dict['PASSWORD']
                 dbconnection.settings_dict['PASSWORD'] = 'wrong password test'
 
         # Créé un membre
@@ -187,6 +189,12 @@ class MemberTests(TestCase):
         with self.assertRaises(Member.DoesNotExist):
             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):
         """
         Test que lorqu'un utilisateur se connect, le champ user du membre