Enable permanent sessions

Fixes #1955
This commit is contained in:
Joseph Schorr 2016-10-10 13:00:59 -04:00
parent 0954240ccb
commit 3a473cad2a
5 changed files with 52 additions and 5 deletions

View file

@ -23,6 +23,7 @@ from config import frontend_visible_config
from external_libraries import get_external_javascript, get_external_css
from util.names import parse_namespace_repository
from util.secscan import PRIORITY_LEVELS
from util.timedeltastring import convert_to_timedelta
logger = logging.getLogger(__name__)
@ -108,16 +109,20 @@ def param_required(param_name, allow_body=False):
return wrapper
def common_login(db_user):
def common_login(db_user, permanent_session=True):
if login_user(LoginWrappedDBUser(db_user.uuid, db_user)):
logger.debug('Successfully signed in as: %s (%s)' % (db_user.username, db_user.uuid))
new_identity = QuayDeferredPermissionUser.for_user(db_user)
identity_changed.send(app, identity=new_identity)
session['login_time'] = datetime.datetime.now()
if permanent_session and features.PERMANENT_SESSIONS:
session_timeout_str = app.config.get('SESSION_TIMEOUT', '31d')
session.permanent = True
session.permanent_session_lifetime = convert_to_timedelta(session_timeout_str)
# Inform our user analytics that we have a new "lead"
user_analytics.create_lead(db_user.email, db_user.username)
return True
else:
logger.debug('User could not be logged in, inactive?.')