Author: adrian
Date: 2007-02-14 23:05:43 -0600 (Wed, 14 Feb 2007)
New Revision: 4523

Modified:
   django/trunk/AUTHORS
   django/trunk/django/newforms/widgets.py
   django/trunk/tests/regressiontests/forms/tests.py
Log:
Fixed #3409 -- Added render_value argument to newforms PasswordInput. Thanks 
for the patch, [EMAIL PROTECTED]

Modified: django/trunk/AUTHORS
===================================================================
--- django/trunk/AUTHORS        2007-02-15 04:13:02 UTC (rev 4522)
+++ django/trunk/AUTHORS        2007-02-15 05:05:43 UTC (rev 4523)
@@ -157,6 +157,7 @@
     Oliver Rutherfurd <http://rutherfurd.net/>
     Ivan Sagalaev (Maniac) <http://www.softwaremaniacs.org/>
     David Schein
+    [EMAIL PROTECTED]
     [EMAIL PROTECTED]
     Pete Shinners <[EMAIL PROTECTED]>
     SmileyChris <[EMAIL PROTECTED]>

Modified: django/trunk/django/newforms/widgets.py
===================================================================
--- django/trunk/django/newforms/widgets.py     2007-02-15 04:13:02 UTC (rev 
4522)
+++ django/trunk/django/newforms/widgets.py     2007-02-15 05:05:43 UTC (rev 
4523)
@@ -81,6 +81,14 @@
 class PasswordInput(Input):
     input_type = 'password'
 
+    def __init__(self, attrs=None, render_value=True):
+        self.attrs = attrs or {}
+        self.render_value = render_value
+
+    def render(self, name, value, attrs=None):
+        if not self.render_value: value=None
+        return super(PasswordInput, self).render(name, value, attrs)
+
 class HiddenInput(Input):
     input_type = 'hidden'
     is_hidden = True

Modified: django/trunk/tests/regressiontests/forms/tests.py
===================================================================
--- django/trunk/tests/regressiontests/forms/tests.py   2007-02-15 04:13:02 UTC 
(rev 4522)
+++ django/trunk/tests/regressiontests/forms/tests.py   2007-02-15 05:05:43 UTC 
(rev 4523)
@@ -72,6 +72,22 @@
 >>> w.render('email', 'ŠĐĆŽćžšđ', attrs={'class': 'fun'})
 u'<input type="password" class="fun" 
value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" name="email" />'
 
+The render_value argument lets you specify whether the widget should render
+its value. You may want to do this for security reasons.
+>>> w = PasswordInput(render_value=True)
+>>> w.render('email', 'secret')
+u'<input type="password" name="email" value="secret" />'
+>>> w = PasswordInput(render_value=False)
+>>> w.render('email', '')
+u'<input type="password" name="email" />'
+>>> w.render('email', None)
+u'<input type="password" name="email" />'
+>>> w.render('email', 'secret')
+u'<input type="password" name="email" />'
+>>> w = PasswordInput(attrs={'class': 'fun'}, render_value=False)
+>>> w.render('email', 'secret')
+u'<input type="password" class="fun" name="email" />'
+
 # HiddenInput Widget 
############################################################
 
 >>> w = HiddenInput()


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to