diff options
author | Jakob Kramer <jakob.kramer@gmx.de> | 2013-05-10 00:40:13 +0200 |
---|---|---|
committer | Rodney Ewing <ewing.rj@gmail.com> | 2013-07-11 14:56:40 -0700 |
commit | 527b7e3b57906a86dae914daae0399b04b3b5388 (patch) | |
tree | 7b6b5786d0a944e7a1a640bfd1c6192578991843 | |
parent | a4dcb1f46a89f33d4946219b02bce6325fb68e50 (diff) | |
download | mediagoblin-527b7e3b57906a86dae914daae0399b04b3b5388.tar.lz mediagoblin-527b7e3b57906a86dae914daae0399b04b3b5388.tar.xz mediagoblin-527b7e3b57906a86dae914daae0399b04b3b5388.zip |
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
-rw-r--r-- | mediagoblin/auth/views.py | 2 | ||||
-rw-r--r-- | mediagoblin/plugins/basic_auth/forms.py | 2 | ||||
-rw-r--r-- | mediagoblin/tools/session.py | 3 |
3 files changed, 6 insertions, 1 deletions
diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 1cff8dcc..d276a074 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -88,6 +88,8 @@ def login(request): if user: # 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.save() diff --git a/mediagoblin/plugins/basic_auth/forms.py b/mediagoblin/plugins/basic_auth/forms.py index 72d99dff..0793f5f4 100644 --- a/mediagoblin/plugins/basic_auth/forms.py +++ b/mediagoblin/plugins/basic_auth/forms.py @@ -41,3 +41,5 @@ class LoginForm(wtforms.Form): normalize_user_or_email_field()]) password = wtforms.PasswordField( _('Password')) + stay_logged_in = wtforms.BooleanField( + _('Stay logged in')) diff --git a/mediagoblin/tools/session.py b/mediagoblin/tools/session.py index fdc32523..ccf96443 100644 --- a/mediagoblin/tools/session.py +++ b/mediagoblin/tools/session.py @@ -24,6 +24,7 @@ _log = logging.getLogger(__name__) class Session(dict): def __init__(self, *args, **kwargs): self.send_new_cookie = False + self.max_age = None dict.__init__(self, *args, **kwargs) def save(self): @@ -65,4 +66,4 @@ class SessionManager(object): response.delete_cookie(self.cookie_name) else: response.set_cookie(self.cookie_name, self.signer.dumps(session), - httponly=True) + max_age=session.max_age, httponly=True) |