diff --git a/pagure/ui/app.py b/pagure/ui/app.py
index fcf0ca1..4639798 100644
--- a/pagure/ui/app.py
+++ b/pagure/ui/app.py
@@ -58,7 +58,9 @@ def _filter_acls(repos, acl, user):
def index():
""" Front page of the application.
"""
- if authenticated() and flask.request.path == "/":
+ if authenticated() and flask.request.path == "/" \
+ and not flask.session.get("_requires_fpca", False):
+ flask.request.from_index = True
return flask.redirect(flask.url_for("ui_ns.userdash_projects"))
sorting = flask.request.args.get("sorting") or None
@@ -986,6 +988,7 @@ def userprofile_groups(username):
def new_project():
""" Form to create a new project.
"""
+
user = pagure.lib.search_user(
flask.g.session, username=flask.g.fas_user.username
)
diff --git a/pagure/utils.py b/pagure/utils.py
index a1d74c0..43433c8 100644
--- a/pagure/utils.py
+++ b/pagure/utils.py
@@ -205,11 +205,11 @@ def login_required(function):
If the auth system is ``fas`` it will also require that the user sign
the FPCA.
"""
- auth_method = pagure_config.get("PAGURE_AUTH", None)
@wraps(function)
def decorated_function(*args, **kwargs):
""" Decorated function, actually does the work. """
+ auth_method = pagure_config.get("PAGURE_AUTH", None)
if flask.session.get("_justloggedout", False):
return flask.redirect(flask.url_for("ui_ns.index"))
elif not authenticated():
@@ -217,6 +217,7 @@ def login_required(function):
flask.url_for("auth_login", next=flask.request.url)
)
elif auth_method == "fas" and not flask.g.fas_user.cla_done:
+ flask.session["_requires_fpca"] = True
flask.flash(
flask.Markup(
'You must Home - Pagure', output_text)
+ self.assertIn(
+ ' You must sign the FPCA (Fedora Project Contributor Agreement) '
+ 'to use pagure', output_text)
+
class PagureFlaskAppNoDocstests(tests.Modeltests):
""" Tests for flask app controller of pagure """