Merge pull request #364 from dod-ccpo/hide-budget-report

Hide Budget Report link from developers of workspaces
This commit is contained in:
montana-mil 2018-10-02 09:33:26 -04:00 committed by GitHub
commit 15b2bf7ee4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 12 deletions

View File

@ -119,7 +119,6 @@ WORKSPACE_ROLES = [
"description": "Views only the projects and environments they are granted access to. Can also view members associated with each environment.",
"permissions": [
Permissions.VIEW_USAGE_REPORT,
Permissions.VIEW_USAGE_DOLLARS,
Permissions.VIEW_WORKSPACE,
Permissions.VIEW_APPLICATION_IN_WORKSPACE,
],

View File

@ -28,11 +28,11 @@ class Users(object):
return user
@classmethod
def create(cls, atat_role_name=None, **kwargs):
def create(cls, dod_id, atat_role_name=None, **kwargs):
atat_role = Roles.get(atat_role_name)
try:
user = User(atat_role=atat_role, **kwargs)
user = User(dod_id=dod_id, atat_role=atat_role, **kwargs)
db.session.add(user)
db.session.commit()
except IntegrityError:
@ -46,7 +46,7 @@ class Users(object):
try:
user = Users.get_by_dod_id(dod_id)
except NotFoundError:
user = Users.create(dod_id=dod_id, **kwargs)
user = Users.create(dod_id, **kwargs)
db.session.add(user)
db.session.commit()

View File

@ -8,13 +8,13 @@ DOD_ID = "my_dod_id"
def test_create_user():
user = Users.create("developer", dod_id=DOD_ID)
user = Users.create(DOD_ID, "developer")
assert user.atat_role.name == "developer"
def test_create_user_with_nonexistent_role():
with pytest.raises(NotFoundError):
Users.create("nonexistent", dod_id=DOD_ID)
Users.create(DOD_ID, "nonexistent")
def test_get_or_create_nonexistent_user():
@ -29,37 +29,37 @@ def test_get_or_create_existing_user():
def test_get_user():
new_user = Users.create("developer", dod_id=DOD_ID)
new_user = Users.create(DOD_ID, "developer")
user = Users.get(new_user.id)
assert user.id == new_user.id
def test_get_nonexistent_user():
Users.create("developer", dod_id=DOD_ID)
Users.create(DOD_ID, "developer")
with pytest.raises(NotFoundError):
Users.get(uuid4())
def test_get_user_by_dod_id():
new_user = Users.create("developer", dod_id=DOD_ID)
new_user = Users.create(DOD_ID, "developer")
user = Users.get_by_dod_id(DOD_ID)
assert user == new_user
def test_update_user():
new_user = Users.create("developer", dod_id=DOD_ID)
new_user = Users.create(DOD_ID, "developer")
updated_user = Users.update(new_user.id, "ccpo")
assert updated_user.atat_role.name == "ccpo"
def test_update_nonexistent_user():
Users.create("developer", dod_id=DOD_ID)
Users.create(DOD_ID, "developer")
with pytest.raises(NotFoundError):
Users.update(uuid4(), "ccpo")
def test_update_existing_user_with_nonexistent_role():
new_user = Users.create("developer", dod_id=DOD_ID)
new_user = Users.create(DOD_ID, "developer")
with pytest.raises(NotFoundError):
Users.update(new_user.id, "nonexistent")

View File

@ -9,6 +9,30 @@ from atst.domain.environment_roles import EnvironmentRoles
from atst.models.workspace_user import WorkspaceUser
def test_user_with_permission_has_budget_report_link(client, user_session):
user = UserFactory.create()
workspace = WorkspaceFactory.create()
Workspaces._create_workspace_role(user, workspace, "owner")
user_session(user)
response = client.get("/workspaces/{}/projects".format(workspace.id))
assert (
'href="/workspaces/{}/reports"'.format(workspace.id).encode() in response.data
)
def test_user_without_permission_has_no_budget_report_link(client, user_session):
user = UserFactory.create()
workspace = WorkspaceFactory.create()
Workspaces._create_workspace_role(user, workspace, "developer")
user_session(user)
response = client.get("/workspaces/{}/projects".format(workspace.id))
assert (
'href="/workspaces/{}/reports"'.format(workspace.id).encode()
not in response.data
)
def test_user_with_permission_has_add_project_link(client, user_session):
user = UserFactory.create()
workspace = WorkspaceFactory.create()