Fix #1493 (stay logged in with enabled remember token, use remember token)
This commit is contained in:
parent
bf75f16169
commit
d0a3503d74
15
cps/web.py
15
cps/web.py
|
@ -36,7 +36,7 @@ from babel.core import UnknownLocaleError
|
||||||
from flask import Blueprint
|
from flask import Blueprint
|
||||||
from flask import render_template, request, redirect, send_from_directory, make_response, g, flash, abort, url_for
|
from flask import render_template, request, redirect, send_from_directory, make_response, g, flash, abort, url_for
|
||||||
from flask_babel import gettext as _
|
from flask_babel import gettext as _
|
||||||
from flask_login import login_user, logout_user, login_required, current_user
|
from flask_login import login_user, logout_user, login_required, current_user, confirm_login
|
||||||
from sqlalchemy.exc import IntegrityError, InvalidRequestError, OperationalError
|
from sqlalchemy.exc import IntegrityError, InvalidRequestError, OperationalError
|
||||||
from sqlalchemy.sql.expression import text, func, true, false, not_, and_, or_
|
from sqlalchemy.sql.expression import text, func, true, false, not_, and_, or_
|
||||||
from werkzeug.exceptions import default_exceptions, InternalServerError
|
from werkzeug.exceptions import default_exceptions, InternalServerError
|
||||||
|
@ -77,11 +77,6 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass # We're not using Python 3
|
pass # We're not using Python 3
|
||||||
|
|
||||||
#try:
|
|
||||||
# import rarfile
|
|
||||||
# feature_support['rar'] = True
|
|
||||||
#except ImportError:
|
|
||||||
# feature_support['rar'] = False
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from natsort import natsorted as sort
|
from natsort import natsorted as sort
|
||||||
|
@ -299,6 +294,8 @@ def render_title_template(*args, **kwargs):
|
||||||
|
|
||||||
@web.before_app_request
|
@web.before_app_request
|
||||||
def before_request():
|
def before_request():
|
||||||
|
if current_user.is_authenticated:
|
||||||
|
confirm_login()
|
||||||
g.user = current_user
|
g.user = current_user
|
||||||
g.allow_registration = config.config_public_reg
|
g.allow_registration = config.config_public_reg
|
||||||
g.allow_anonymous = config.config_anonbrowse
|
g.allow_anonymous = config.config_anonbrowse
|
||||||
|
@ -1392,14 +1389,14 @@ def login():
|
||||||
if config.config_login_type == constants.LOGIN_LDAP and services.ldap and user and form['password'] != "":
|
if config.config_login_type == constants.LOGIN_LDAP and services.ldap and user and form['password'] != "":
|
||||||
login_result, error = services.ldap.bind_user(form['username'], form['password'])
|
login_result, error = services.ldap.bind_user(form['username'], form['password'])
|
||||||
if login_result:
|
if login_result:
|
||||||
login_user(user, remember=True)
|
login_user(user, remember=bool(form.get('remember_me')))
|
||||||
log.debug(u"You are now logged in as: '%s'", user.nickname)
|
log.debug(u"You are now logged in as: '%s'", user.nickname)
|
||||||
flash(_(u"you are now logged in as: '%(nickname)s'", nickname=user.nickname),
|
flash(_(u"you are now logged in as: '%(nickname)s'", nickname=user.nickname),
|
||||||
category="success")
|
category="success")
|
||||||
return redirect_back(url_for("web.index"))
|
return redirect_back(url_for("web.index"))
|
||||||
elif login_result is None and user and check_password_hash(str(user.password), form['password']) \
|
elif login_result is None and user and check_password_hash(str(user.password), form['password']) \
|
||||||
and user.nickname != "Guest":
|
and user.nickname != "Guest":
|
||||||
login_user(user, remember=True)
|
login_user(user, remember=bool(form.get('remember_me')))
|
||||||
log.info("Local Fallback Login as: '%s'", user.nickname)
|
log.info("Local Fallback Login as: '%s'", user.nickname)
|
||||||
flash(_(u"Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known",
|
flash(_(u"Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known",
|
||||||
nickname=user.nickname),
|
nickname=user.nickname),
|
||||||
|
@ -1428,7 +1425,7 @@ def login():
|
||||||
log.info('Username missing for password reset IP-adress: %s', ipAdress)
|
log.info('Username missing for password reset IP-adress: %s', ipAdress)
|
||||||
else:
|
else:
|
||||||
if user and check_password_hash(str(user.password), form['password']) and user.nickname != "Guest":
|
if user and check_password_hash(str(user.password), form['password']) and user.nickname != "Guest":
|
||||||
login_user(user, remember=True)
|
login_user(user, remember=bool(form.get('remember_me')))
|
||||||
log.debug(u"You are now logged in as: '%s'", user.nickname)
|
log.debug(u"You are now logged in as: '%s'", user.nickname)
|
||||||
flash(_(u"You are now logged in as: '%(nickname)s'", nickname=user.nickname), category="success")
|
flash(_(u"You are now logged in as: '%(nickname)s'", nickname=user.nickname), category="success")
|
||||||
config.config_is_initial = False
|
config.config_is_initial = False
|
||||||
|
|
Loading…
Reference in New Issue
Block a user