From 443acd57d2c137c843fccf15ae0aa694ec2f8cd5 Mon Sep 17 00:00:00 2001 From: zhengxie Date: Thu, 2 Jan 2014 16:20:39 +0800 Subject: [PATCH] Added remember me to login form --- media/css/seahub.css | 4 ++++ seahub/auth/__init__.py | 2 ++ seahub/auth/views.py | 6 ++++++ seahub/settings.py | 3 +++ seahub/templates/registration/login.html | 13 +++++++++---- 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/media/css/seahub.css b/media/css/seahub.css index 9e157761bc..6d585e61ac 100644 --- a/media/css/seahub.css +++ b/media/css/seahub.css @@ -1107,6 +1107,10 @@ textarea:-moz-placeholder {/* for FF */ width:auto; margin:3px 0 0; } +#id_remember_me { + width: auto; + margin-right: 5px; +} /*myhome*/ .home-profile .pic { margin-left:9px; diff --git a/seahub/auth/__init__.py b/seahub/auth/__init__.py index e3ddac0f14..6a5af29de1 100644 --- a/seahub/auth/__init__.py +++ b/seahub/auth/__init__.py @@ -80,6 +80,8 @@ def login(request, user): request.session[SESSION_KEY] = user.username request.session[BACKEND_SESSION_KEY] = user.backend + if request.session.get('remember_me', False): + request.session.set_expiry(7 * 24 * 60 * 60) if hasattr(request, 'user'): request.user = user user_logged_in.send(sender=user.__class__, request=request, user=user) diff --git a/seahub/auth/views.py b/seahub/auth/views.py index 4e9aa1c093..6a47f7e29c 100644 --- a/seahub/auth/views.py +++ b/seahub/auth/views.py @@ -69,6 +69,9 @@ def login(request, template_name='registration/login.html', form = CaptchaAuthenticationForm(data=request.POST) if form.is_valid(): # captcha & passwod is valid, log user in + remember_me = True if request.REQUEST.get( + 'remember_me', '') == 'on' else False + request.session['remember_me'] = remember_me return log_user_in(request, form.get_user(), redirect_to) # else: # show page with captcha @@ -76,6 +79,9 @@ def login(request, template_name='registration/login.html', form = authentication_form(data=request.POST) if form.is_valid(): # password is valid, log user in + remember_me = True if request.REQUEST.get( + 'remember_me', '') == 'on' else False + request.session['remember_me'] = remember_me return log_user_in(request, form.get_user(), redirect_to) else: username = request.REQUEST.get('username', '') diff --git a/seahub/settings.py b/seahub/settings.py index 3880599e97..be127b8bbe 100644 --- a/seahub/settings.py +++ b/seahub/settings.py @@ -360,6 +360,9 @@ LOGGING = { LOGIN_ATTEMPT_LIMIT = 3 LOGIN_ATTEMPT_TIMEOUT = 15 * 60 # in seconds (default: 15 minutes) +# Age of cookie, in seconds (default: 1 day). +SESSION_COOKIE_AGE = 24 * 60 * 60 + ################# # Email sending # ################# diff --git a/seahub/templates/registration/login.html b/seahub/templates/registration/login.html index 9bb4bc784d..0409b5a129 100644 --- a/seahub/templates/registration/login.html +++ b/seahub/templates/registration/login.html @@ -17,15 +17,20 @@ {% endif %} {% if form.errors %} - {% if form.captcha.errors %} + {% if form.captcha.errors %}

{{ form.captcha.errors}}

- {% else %} + {% else %}

{% trans "Incorrect email or password" %}

- {% endif %} + {% endif %} {% else %}

{% endif %} - + +
+ +
+ + {% if enable_signup %} {% trans "Signup" %} {% endif %}