add login option: stay_logged_in
As proposed in issue #354; it adds an attribute max_age to mediagoblin.tools.session.Session that is passed to response.set_cookie; max_age is set to 30 days if the checkbox is selected
This commit is contained in:
parent
a4dcb1f46a
commit
527b7e3b57
@ -88,6 +88,8 @@ def login(request):
|
|||||||
|
|
||||||
if user:
|
if user:
|
||||||
# set up login in session
|
# set up login in session
|
||||||
|
if login_form.stay_logged_in.data:
|
||||||
|
request.session.max_age = 30 * 24 * 60 * 60
|
||||||
request.session['user_id'] = unicode(user.id)
|
request.session['user_id'] = unicode(user.id)
|
||||||
request.session.save()
|
request.session.save()
|
||||||
|
|
||||||
|
@ -41,3 +41,5 @@ class LoginForm(wtforms.Form):
|
|||||||
normalize_user_or_email_field()])
|
normalize_user_or_email_field()])
|
||||||
password = wtforms.PasswordField(
|
password = wtforms.PasswordField(
|
||||||
_('Password'))
|
_('Password'))
|
||||||
|
stay_logged_in = wtforms.BooleanField(
|
||||||
|
_('Stay logged in'))
|
||||||
|
@ -24,6 +24,7 @@ _log = logging.getLogger(__name__)
|
|||||||
class Session(dict):
|
class Session(dict):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.send_new_cookie = False
|
self.send_new_cookie = False
|
||||||
|
self.max_age = None
|
||||||
dict.__init__(self, *args, **kwargs)
|
dict.__init__(self, *args, **kwargs)
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
@ -65,4 +66,4 @@ class SessionManager(object):
|
|||||||
response.delete_cookie(self.cookie_name)
|
response.delete_cookie(self.cookie_name)
|
||||||
else:
|
else:
|
||||||
response.set_cookie(self.cookie_name, self.signer.dumps(session),
|
response.set_cookie(self.cookie_name, self.signer.dumps(session),
|
||||||
httponly=True)
|
max_age=session.max_age, httponly=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user