Code

allow negative items, helping construct forms
[roundup.git] / roundup / password.py
index 8400f67a1bfc59c7a980aa6d6ff6a89a32153b9d..97de75d08be5cd4a4d2ca7dfbd9eaedb726c4f73 100644 (file)
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: password.py,v 1.8 2002-12-18 23:57:09 richard Exp $
+# $Id: password.py,v 1.10 2003-11-11 00:35:13 richard Exp $
 
 __doc__ = """
 Password handling (encoding, decoding).
 """
 
-import sha, re, string
+import sha, re, string, random
 try:
     import crypt
 except:
     crypt = None
     pass
 
+class PasswordValueError(ValueError):
+    ''' The password value is not valid '''
+    pass
+
 def encodePassword(plaintext, scheme, other=None):
     '''Encrypt the plaintext password.
     '''
@@ -45,9 +49,13 @@ def encodePassword(plaintext, scheme, other=None):
     elif scheme == 'plaintext':
         s = plaintext
     else:
-        raise ValueError, 'Unknown encryption scheme "%s"'%scheme
+        raise PasswordValueError, 'unknown encryption scheme %r'%scheme
     return s
 
+def generatePassword(length=8):
+    chars = string.letters+string.digits
+    return ''.join([random.choice(chars) for x in range(length)])
+
 class Password:
     '''The class encapsulates a Password property type value in the database.