[Checkins] SVN: z3c.password/trunk/ Fix: ``PrincipalMixIn.passwordSetOn`` happens to be ``None`` in case the

Adam Groszer agroszer at gmail.com
Tue Dec 22 07:25:08 EST 2009


Log message for revision 106861:
  Fix: ``PrincipalMixIn.passwordSetOn`` happens to be ``None`` in case the
    class is mixed in after the user was created, that caused a bug.

Changed:
  U   z3c.password/trunk/CHANGES.txt
  U   z3c.password/trunk/src/z3c/password/principal.py
  U   z3c.password/trunk/src/z3c/password/principal.txt

-=-
Modified: z3c.password/trunk/CHANGES.txt
===================================================================
--- z3c.password/trunk/CHANGES.txt	2009-12-22 09:22:05 UTC (rev 106860)
+++ z3c.password/trunk/CHANGES.txt	2009-12-22 12:25:07 UTC (rev 106861)
@@ -5,7 +5,8 @@
 0.8.0 (unreleased)
 ------------------
 
-- ...
+- Fix: ``PrincipalMixIn.passwordSetOn`` happens to be ``None`` in case the
+  class is mixed in after the user was created, that caused a bug.
 
 0.7.3 (2009-12-08)
 ------------------

Modified: z3c.password/trunk/src/z3c/password/principal.py
===================================================================
--- z3c.password/trunk/src/z3c/password/principal.py	2009-12-22 09:22:05 UTC (rev 106860)
+++ z3c.password/trunk/src/z3c/password/principal.py	2009-12-22 12:25:07 UTC (rev 106861)
@@ -160,6 +160,8 @@
         expires = self._passwordExpiresAfter()
         if expires is None:
             return None
+        if self.passwordSetOn is None:
+            return None
         return self.passwordSetOn + expires
 
     def _optionsUtility(self):

Modified: z3c.password/trunk/src/z3c/password/principal.txt
===================================================================
--- z3c.password/trunk/src/z3c/password/principal.txt	2009-12-22 09:22:05 UTC (rev 106860)
+++ z3c.password/trunk/src/z3c/password/principal.txt	2009-12-22 12:25:07 UTC (rev 106861)
@@ -761,6 +761,19 @@
 
 
 
+``passwordSetOn`` might happen to be None.
+In case the mixin gets applied to the user object after it's been created
+the ``passwordSetOn`` property will be None. That caused a bug.
+
+  >>> user = MyPrincipal('srichter', '123123', u'Stephan Richter')
+  >>> user.passwordSetOn = None
+
+  >>> user.checkPassword('123123')
+  True
+
+
+
+
 Coverage happiness
 ------------------
 



More information about the checkins mailing list