changeset 1802:145677a36675 beta

Remember Me option on login
author Matt Zuba <matt.zuba@goodwillaz.org>
date Wed, 21 Dec 2011 10:08:32 -0700
parents b6d23aa3754c
children 96789e1b0064
files rhodecode/controllers/login.py rhodecode/model/forms.py rhodecode/templates/login.html
diffstat 3 files changed, 15 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/login.py	Wed Dec 21 06:19:28 2011 +0200
+++ b/rhodecode/controllers/login.py	Wed Dec 21 10:08:32 2011 -0700
@@ -70,6 +70,11 @@
                 auth_user.set_authenticated()
                 cs = auth_user.get_cookie_store()
                 session['rhodecode_user'] = cs
+                # If they want to be remembered, update the cookie
+                if c.form_result['remember'] is not False:
+                    session.cookie_expires = False
+                    session._set_cookie_values()
+                session._update_cookie_out()
                 session.save()
 
                 log.info('user %s is now authenticated and stored in '
@@ -159,7 +164,6 @@
         return redirect(url('login_home'))
 
     def logout(self):
-        del session['rhodecode_user']
-        session.save()
-        log.info('Logging out and setting user as Empty')
+        session.delete()
+        log.info('Logging out and deleting session for user')
         redirect(url('home'))
--- a/rhodecode/model/forms.py	Wed Dec 21 06:19:28 2011 +0200
+++ b/rhodecode/model/forms.py	Wed Dec 21 10:08:32 2011 -0700
@@ -482,6 +482,8 @@
                                 'tooShort':_('Enter %(min)i characters or more')}
                                 )
 
+    remember = StringBoolean(if_missing=False)
+    
     chained_validators = [ValidAuth]
 
 def UserForm(edit=False, old_data={}):
--- a/rhodecode/templates/login.html	Wed Dec 21 06:19:28 2011 +0200
+++ b/rhodecode/templates/login.html	Wed Dec 21 10:08:32 2011 -0700
@@ -44,12 +44,12 @@
                     </div>
                     
                 </div>
-                ##<div class="field">
-                ##    <div class="checkbox">
-                ##        <input type="checkbox" id="remember" name="remember" />
-                ##        <label for="remember">Remember me</label>
-                ##    </div>
-                ##</div>
+                <div class="field">
+                    <div class="checkbox">
+                        <input type="checkbox" id="remember" name="remember" />
+                        <label for="remember">Remember me</label>
+                    </div>
+                </div>
                 <div class="buttons">
                     ${h.submit('sign_in',_('Sign In'),class_="ui-button")}
                 </div>