]> git.ipfire.org Git - pbs.git/commitdiff
users: Throw a better error when there are duplicate email addresses
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 19 Oct 2022 16:26:51 +0000 (16:26 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 19 Oct 2022 16:26:51 +0000 (16:26 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/users.py

index 12bb44fd56d8582e519c353636ffa4e62f627a50..4dd2a498cd5586371d2c6b9e97b97d442a9d4e03 100644 (file)
@@ -140,7 +140,7 @@ class Users(base.Object):
 
                # Too many results?
                elif len(results) > 1:
-                       raise RuntimeException("Too many results returned for ldap_get()")
+                       raise OverflowError("Too many results returned for ldap_get()")
 
                return results[0]
 
@@ -228,16 +228,20 @@ class Users(base.Object):
                        return
 
                # Search in LDAP
-               res = self._ldap_get(
-                       "(&"
-                               "(objectClass=person)"
-                               "(|"
-                                       "(mail=%s)"
-                                       "(mailAlternateAddress=%s)"
-                               ")"
-                       ")" % (mail, mail),
-                       attrlist=("uid",),
-               )
+               try:
+                       res = self._ldap_get(
+                               "(&"
+                                       "(objectClass=person)"
+                                       "(|"
+                                               "(mail=%s)"
+                                               "(mailAlternateAddress=%s)"
+                                       ")"
+                               ")" % (mail, mail),
+                               attrlist=("uid",),
+                       )
+
+               except OverflowError as e:
+                       raise OverflowError("Too many results for search for %s" % mail) from e
 
                # No results
                if not res: