Merge pull request #608 from dod-ccpo/reskin-nav
Reskin navigation, phase 1
This commit is contained in:
@@ -22,6 +22,7 @@ from atst.domain.authnid.crl import CRLCache, NoOpCRLCache
|
||||
from atst.domain.auth import apply_authentication
|
||||
from atst.domain.authz import Authorization
|
||||
from atst.domain.csp import make_csp_provider
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.eda_client import MockEDAClient
|
||||
from atst.utils import mailer
|
||||
@@ -90,6 +91,14 @@ def make_flask_callbacks(app):
|
||||
g.Authorization = Authorization
|
||||
g.Permissions = Permissions
|
||||
|
||||
@app.context_processor
|
||||
def _portfolios():
|
||||
if not g.current_user:
|
||||
return {}
|
||||
|
||||
portfolios = Portfolios.for_user(g.current_user)
|
||||
return {"portfolios": portfolios}
|
||||
|
||||
@app.after_request
|
||||
def _cleanup(response):
|
||||
g.current_user = None
|
||||
|
@@ -13,6 +13,7 @@ from atst.domain.authnid import AuthenticationContext
|
||||
from atst.domain.audit_log import AuditLog
|
||||
from atst.domain.auth import logout as _logout
|
||||
from atst.domain.common import Paginator
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.utils.flash import formatted_flash as flash
|
||||
|
||||
|
||||
@@ -52,16 +53,16 @@ def home():
|
||||
if user.atat_role_name == "ccpo":
|
||||
return redirect(url_for("requests.requests_index"))
|
||||
|
||||
num_portfolios = len(user.portfolio_roles)
|
||||
num_portfolios = len([role for role in user.portfolio_roles if role.is_active])
|
||||
|
||||
if num_portfolios == 0:
|
||||
return redirect(url_for("requests.requests_index"))
|
||||
elif num_portfolios == 1:
|
||||
portfolio_role = user.portfolio_roles[0]
|
||||
portfolio_id = portfolio_role.portfolio.id
|
||||
is_request_owner = portfolio_role.role.name == "owner"
|
||||
is_portfolio_owner = portfolio_role.role.name == "owner"
|
||||
|
||||
if is_request_owner:
|
||||
if is_portfolio_owner:
|
||||
return redirect(
|
||||
url_for("portfolios.portfolio_reports", portfolio_id=portfolio_id)
|
||||
)
|
||||
@@ -70,7 +71,13 @@ def home():
|
||||
url_for("portfolios.portfolio_applications", portfolio_id=portfolio_id)
|
||||
)
|
||||
else:
|
||||
return redirect(url_for("portfolios.portfolios"))
|
||||
portfolios = Portfolios.for_user(g.current_user)
|
||||
first_portfolio = sorted(portfolios, key=lambda portfolio: portfolio.name)[0]
|
||||
return redirect(
|
||||
url_for(
|
||||
"portfolios.portfolio_applications", portfolio_id=first_portfolio.id
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@bp.route("/styleguide")
|
||||
|
@@ -15,14 +15,12 @@ from atst.models.permissions import Permissions
|
||||
|
||||
@portfolios_bp.context_processor
|
||||
def portfolio():
|
||||
portfolios = Portfolios.for_user(g.current_user)
|
||||
portfolio = None
|
||||
if "portfolio_id" in http_request.view_args:
|
||||
try:
|
||||
portfolio = Portfolios.get(
|
||||
g.current_user, http_request.view_args["portfolio_id"]
|
||||
)
|
||||
portfolios = [ws for ws in portfolios if not ws.id == portfolio.id]
|
||||
except UnauthorizedError:
|
||||
pass
|
||||
|
||||
@@ -33,9 +31,4 @@ def portfolio():
|
||||
)
|
||||
return False
|
||||
|
||||
return {
|
||||
"portfolio": portfolio,
|
||||
"portfolios": portfolios,
|
||||
"permissions": Permissions,
|
||||
"user_can": user_can,
|
||||
}
|
||||
return {"portfolio": portfolio, "permissions": Permissions, "user_can": user_can}
|
||||
|
Reference in New Issue
Block a user