Skip to content

Commit 55da403

Browse files
author
Alexander Smishlajev
committed
keep plaintext password in Password object property (rfe [SF#1379447])
1 parent 310bcbd commit 55da403

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

roundup/password.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
1616
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
1717
#
18-
# $Id: password.py,v 1.14 2005-12-03 11:35:54 a1s Exp $
18+
# $Id: password.py,v 1.15 2005-12-25 15:38:40 a1s Exp $
1919

2020
"""Password handling (encoding, decoding).
2121
"""
@@ -89,32 +89,34 @@ def __init__(self, plaintext=None, scheme=None, encrypted=None):
8989
if scheme is None:
9090
scheme = self.default_scheme
9191
if plaintext is not None:
92-
self.password = encodePassword(plaintext, self.default_scheme)
93-
self.scheme = self.default_scheme
92+
self.setPassword (plaintext, scheme)
9493
elif encrypted is not None:
95-
self.unpack(encrypted)
94+
self.unpack(encrypted, scheme)
9695
else:
97-
self.password = None
9896
self.scheme = self.default_scheme
97+
self.password = None
98+
self.plaintext = None
9999

100-
def unpack(self, encrypted):
100+
def unpack(self, encrypted, scheme=None):
101101
'''Set the password info from the scheme:<encryted info> string
102102
(the inverse of __str__)
103103
'''
104104
m = self.pwre.match(encrypted)
105105
if m:
106106
self.scheme = m.group(1)
107107
self.password = m.group(2)
108+
self.plaintext = None
108109
else:
109110
# currently plaintext - encrypt
110-
self.password = encodePassword(encrypted, self.default_scheme)
111-
self.scheme = self.default_scheme
111+
self.setPassword(encrypted, scheme)
112112

113113
def setPassword(self, plaintext, scheme=None):
114114
'''Sets encrypts plaintext.'''
115115
if scheme is None:
116116
scheme = self.default_scheme
117+
self.scheme = scheme
117118
self.password = encodePassword(plaintext, scheme)
119+
self.plaintext = plaintext
118120

119121
def __cmp__(self, other):
120122
'''Compare this password against another password.'''

0 commit comments

Comments
 (0)