diff --git a/rhodecode/controllers/login.py b/rhodecode/controllers/login.py --- a/rhodecode/controllers/login.py +++ b/rhodecode/controllers/login.py @@ -70,6 +70,11 @@ class LoginController(BaseController): 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 @@ class LoginController(BaseController): 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')) diff --git a/rhodecode/model/forms.py b/rhodecode/model/forms.py --- a/rhodecode/model/forms.py +++ b/rhodecode/model/forms.py @@ -482,6 +482,8 @@ class LoginForm(formencode.Schema): 'tooShort':_('Enter %(min)i characters or more')} ) + remember = StringBoolean(if_missing=False) + chained_validators = [ValidAuth] def UserForm(edit=False, old_data={}): diff --git a/rhodecode/templates/login.html b/rhodecode/templates/login.html --- a/rhodecode/templates/login.html +++ b/rhodecode/templates/login.html @@ -44,12 +44,12 @@ - ##
- ##
- ## - ## - ##
- ##
+
+
+ + +
+
${h.submit('sign_in',_('Sign In'),class_="ui-button")}