Parcourir la source

Merge pull request #281 from untitaker/pam

Fix compatibility for PAM auth
Guillaume Ayoub il y a 11 ans
Parent
commit
85826fcb74
1 fichiers modifiés avec 8 ajouts et 4 suppressions
  1. 8 4
      radicale/auth/PAM.py

+ 8 - 4
radicale/auth/PAM.py

@@ -33,9 +33,13 @@ from .. import config, log
 GROUP_MEMBERSHIP = config.get("auth", "pam_group_membership")
 
 
-# Compatibility patch for old versions of python-pam.
-if not hasattr(pam, "pam"):
-    pam.pam = (lambda *vargs, **kwargs: pam.authenticate(*vargs, **kwards))
+# Compatibility for old versions of python-pam.
+if hasattr(pam, "pam"):
+    def pam_authenticate(*args, **kwargs):
+        return pam.pam().authenticate(*args, **kwargs)
+else:
+    def pam_authenticate(*args, **kwargs):
+        return pam.authenticate(*args, **kwargs)
 
 
 def is_authenticated(user, password):
@@ -77,7 +81,7 @@ def is_authenticated(user, password):
             "The PAM user belongs to the required group (%s)" %
             GROUP_MEMBERSHIP)
         # Check the password
-        if pam.pam().authenticate(user, password):
+        if pam_authenticate(user, password):
             return True
         else:
             log.LOGGER.debug("Wrong PAM password")