Redirect CCPO user to requests page

This commit is contained in:
richard-dds 2018-09-18 11:08:19 -04:00
parent 955a735f96
commit 4ab73cc06b
3 changed files with 23 additions and 2 deletions

View File

@ -26,6 +26,10 @@ class User(Base):
def atat_permissions(self): def atat_permissions(self):
return self.atat_role.permissions return self.atat_role.permissions
@property
def atat_role_name(self):
return self.atat_role.name
@property @property
def full_name(self): def full_name(self):
return "{} {}".format(self.first_name, self.last_name) return "{} {}".format(self.first_name, self.last_name)

View File

@ -17,12 +17,17 @@ def root():
@bp.route("/home") @bp.route("/home")
def home(): def home():
num_workspaces = len(g.current_user.workspace_roles) user = g.current_user
if user.atat_role_name == "ccpo":
return redirect(url_for("requests.requests_index"))
num_workspaces = len(user.workspace_roles)
if num_workspaces == 0: if num_workspaces == 0:
return redirect(url_for("requests.requests_index")) return redirect(url_for("requests.requests_index"))
elif num_workspaces == 1: elif num_workspaces == 1:
workspace_role = g.current_user.workspace_roles[0] workspace_role = user.workspace_roles[0]
workspace_id = workspace_role.workspace.id workspace_id = workspace_role.workspace.id
is_request_owner = workspace_role.role.name == "owner" is_request_owner = workspace_role.role.name == "owner"

View File

@ -84,3 +84,15 @@ def test_non_owner_user_with_mulitple_workspaces_redirected_to_workspaces(
response = client.get("/home", follow_redirects=False) response = client.get("/home", follow_redirects=False)
assert "/workspaces" in response.location assert "/workspaces" in response.location
def test_ccpo_user_redirected_to_requests(client, user_session):
user = UserFactory.from_atat_role("ccpo")
for _ in range(3):
workspace = WorkspaceFactory.create()
Workspaces._create_workspace_role(user, workspace, "developer")
user_session(user)
response = client.get("/home", follow_redirects=False)
assert "/requests" in response.location