Parcourir la source

Add compatibility patch for .authenticate().

Current version of python-pam (https://pypi.python.org/pypi/python-pam/1.8.1) have changed the API slightly; this patch fixes these bugs.
Jeremy Archer il y a 11 ans
Parent
commit
dd01087520
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      radicale/auth/PAM.py

+ 6 - 1
radicale/auth/PAM.py

@@ -33,6 +33,11 @@ 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))
+
+
 def is_authenticated(user, password):
     """Check if ``user``/``password`` couple is valid."""
     if user is None or password is None:
@@ -72,7 +77,7 @@ def is_authenticated(user, password):
             "The PAM user belongs to the required group (%s)" %
             GROUP_MEMBERSHIP)
         # Check the password
-        if pam.authenticate(user, password):
+        if pam.pam().authenticate(user, password):
             return True
         else:
             log.LOGGER.debug("Wrong PAM password")