[Checkins] SVN: z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/ more specific exceptions on wrong passwords

Adam Groszer agroszer at gmail.com
Fri Jan 29 11:17:37 EST 2010


Log message for revision 108641:
  more specific exceptions on wrong passwords

Changed:
  U   z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/README.txt
  U   z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/interfaces.py
  U   z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/password.py
  U   z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/principal.py

-=-
Modified: z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/README.txt
===================================================================
--- z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/README.txt	2010-01-29 16:08:03 UTC (rev 108640)
+++ z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/README.txt	2010-01-29 16:17:37 UTC (rev 108641)
@@ -167,12 +167,12 @@
   >>> pwd.verify('FOOBAR123')
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersLowerLetter
 
   >>> pwd.verify('foobAR123')
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersLowerLetter
 
   >>> pwd.verify('foobaR123')
 
@@ -191,12 +191,12 @@
   >>> pwd.verify('foobar123')
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersUpperLetter
 
   >>> pwd.verify('FOOBar123')
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersUpperLetter
 
   >>> pwd.verify('fOOBAR123')
 
@@ -215,12 +215,12 @@
   >>> pwd.verify('foobar123')
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersDigits
 
   >>> pwd.verify('FOOBa1234')
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersDigits
 
   >>> pwd.verify('fOBA12345')
 
@@ -239,12 +239,12 @@
   >>> pwd.verify('foo(bar)')
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersSpecials
 
   >>> pwd.verify('FO.#(Ba1)')
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersSpecials
 
   >>> pwd.verify('fO.,;()5')
 
@@ -262,12 +262,12 @@
   >>> pwd.verify('foobar'+unichr(0x0c3)+unichr(0x0c4))
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersOthers
 
   >>> pwd.verify('foobar'+unichr(0x0c3)+unichr(0x0c4)+unichr(0x0e1))
   Traceback (most recent call last):
   ...
-  TooFewGroupCharacters
+  TooFewGroupCharactersOthers
 
   >>> pwd.verify('fOO'+unichr(0x0e1)*5)
 

Modified: z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/interfaces.py
===================================================================
--- z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/interfaces.py	2010-01-29 16:08:03 UTC (rev 108640)
+++ z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/interfaces.py	2010-01-29 16:17:37 UTC (rev 108641)
@@ -43,6 +43,25 @@
 class TooFewGroupCharacters(InvalidPassword):
     __doc__ = _('''Password does not contain enough characters of one group.''')
 
+class TooFewGroupCharactersLowerLetter(TooFewGroupCharacters):
+    __doc__ = _(
+        '''Password does not contain enough characters of lowercase letters.''')
+
+class TooFewGroupCharactersUpperLetter(TooFewGroupCharacters):
+    __doc__ = _(
+        '''Password does not contain enough characters of uppercase letters.''')
+
+class TooFewGroupCharactersDigits(TooFewGroupCharacters):
+    __doc__ = _('''Password does not contain enough characters of digits.''')
+
+class TooFewGroupCharactersSpecials(TooFewGroupCharacters):
+    __doc__ = _(
+        '''Password does not contain enough characters of special characters.''')
+
+class TooFewGroupCharactersOthers(TooFewGroupCharacters):
+    __doc__ = _(
+        '''Password does not contain enough characters of other characters.''')
+
 class TooFewUniqueCharacters(InvalidPassword):
     __doc__ = _('''Password does not contain enough unique characters.''')
 

Modified: z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/password.py
===================================================================
--- z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/password.py	2010-01-29 16:08:03 UTC (rev 108640)
+++ z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/password.py	2010-01-29 16:17:37 UTC (rev 108641)
@@ -146,23 +146,23 @@
 
         if (self.minLowerLetter is not None
             and num_lower_letters < self.minLowerLetter):
-            raise interfaces.TooFewGroupCharacters()
+            raise interfaces.TooFewGroupCharactersLowerLetter()
 
         if (self.minUpperLetter is not None
             and num_upper_letters < self.minUpperLetter):
-            raise interfaces.TooFewGroupCharacters()
+            raise interfaces.TooFewGroupCharactersUpperLetter()
 
         if (self.minDigits is not None
             and num_digits < self.minDigits):
-            raise interfaces.TooFewGroupCharacters()
+            raise interfaces.TooFewGroupCharactersDigits()
 
         if (self.minSpecials is not None
             and num_specials < self.minSpecials):
-            raise interfaces.TooFewGroupCharacters()
+            raise interfaces.TooFewGroupCharactersSpecials()
 
         if (self.minOthers is not None
             and num_others < self.minOthers):
-            raise interfaces.TooFewGroupCharacters()
+            raise interfaces.TooFewGroupCharactersOthers()
 
         if (self.minUniqueCharacters is not None
             and len(uniqueChars) < self.minUniqueCharacters):

Modified: z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/principal.py
===================================================================
--- z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/principal.py	2010-01-29 16:08:03 UTC (rev 108640)
+++ z3c.password/branches/adamg-tooManyLoginFailures/src/z3c/password/principal.py	2010-01-29 16:17:37 UTC (rev 108641)
@@ -141,8 +141,7 @@
             return None
 
     def checkFailedAttempt(self):
-        #failed attempt, record it, increase counter
-        #(in case we have to)
+        #failed attempt, record it, increase counter (in case we have to)
         validRequest = True
         fac = self._failedAttemptCheck()
         if fac == interfaces.TML_CHECK_ALL:



More information about the checkins mailing list