def admin_session_timedout(): ''' Check if the current user has been authenticated for more than what is allowed (defaults to 15 minutes). If it is the case, the user is logged out and the method returns True, otherwise it returns False. ''' timedout = False if not authenticated(): return True if (datetime.datetime.utcnow() - flask.g.fas_user.login_time) > \ APP.config.get('ADMIN_SESSION_LIFETIME', datetime.timedelta(minutes=15)): timedout = True FAS.logout() return timedout
def auth_login(): # pragma: no cover """ Method to log into the application using FAS OpenID. """ return_point = flask.url_for('index') if 'next' in flask.request.args: if is_safe_url(flask.request.args['next']): return_point = flask.request.args['next'] if authenticated(): return flask.redirect(return_point) admins = APP.config['ADMIN_GROUP'] if isinstance(admins, basestring): admins = set([admins]) else: # pragma: no cover admins = set(admins) if APP.config.get('PAGURE_AUTH', None) == 'fas': return FAS.login(return_url=return_point, groups=admins) elif APP.config.get('PAGURE_AUTH', None) == 'local': form = pagure.login_forms.LoginForm() return flask.render_template( 'login/login.html', next_url=return_point, form=form, )
def auth_login(): # pragma: no cover """ Method to log into the application using FAS OpenID. """ return_point = flask.url_for('index') if 'next' in flask.request.args: if is_safe_url(flask.request.args['next']): return_point = flask.request.args['next'] if authenticated(): return flask.redirect(return_point) admins = APP.config['ADMIN_GROUP'] if isinstance(admins, basestring): admins = set([admins]) else: # pragma: no cover admins = set(admins) if APP.config.get('PAGURE_AUTH', None) == 'fas': return FAS.login(return_url=return_point, groups=admins, ssh=True) elif APP.config.get('PAGURE_AUTH', None) == 'local': form = pagure.login_forms.LoginForm() return flask.render_template( 'login/login.html', next_url=return_point, form=form, )
def auth_logout(): # pragma: no cover """ Method to log out from the application. """ return_point = flask.url_for('index') if 'next' in flask.request.args: if is_safe_url(flask.request.args['next']): return_point = flask.request.args['next'] if not authenticated(): return flask.redirect(return_point) if APP.config.get('PAGURE_AUTH', None) == 'fas': if hasattr(flask.g, 'fas_user') and flask.g.fas_user is not None: FAS.logout() flask.flash("You are no longer logged-in") elif APP.config.get('PAGURE_AUTH', None) == 'local': login.logout() return flask.redirect(return_point)
from pygments import highlight from pygments.lexers.text import DiffLexer from pygments.formatters import HtmlFormatter # Create the application. APP = flask.Flask(__name__) APP.jinja_env.trim_blocks = True APP.jinja_env.lstrip_blocks = True # set up FAS APP.config.from_object('pagure.default_config') if 'PAGURE_CONFIG' in os.environ: APP.config.from_envvar('PAGURE_CONFIG') FAS = FAS(APP) SESSION = pagure.lib.create_session(APP.config['DB_URL']) REDIS = None if APP.config['EVENTSOURCE_SOURCE']: POOL = redis.ConnectionPool(host=APP.config['REDIS_HOST'], port=APP.config['REDIS_PORT'], db=APP.config['REDIS_DB']) REDIS = redis.StrictRedis(connection_pool=POOL) if not APP.debug: APP.logger.addHandler( pagure.mail_logging.get_mail_handler( smtp_server=APP.config.get('SMTP_SERVER', '127.0.0.1'), mail_admin=APP.config.get('MAIL_ADMIN', APP.config['EMAIL_ERROR'])))