Merge pull request #364 from dod-ccpo/hide-budget-report
Hide Budget Report link from developers of workspaces
This commit is contained in:
commit
15b2bf7ee4
@ -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.",
|
"description": "Views only the projects and environments they are granted access to. Can also view members associated with each environment.",
|
||||||
"permissions": [
|
"permissions": [
|
||||||
Permissions.VIEW_USAGE_REPORT,
|
Permissions.VIEW_USAGE_REPORT,
|
||||||
Permissions.VIEW_USAGE_DOLLARS,
|
|
||||||
Permissions.VIEW_WORKSPACE,
|
Permissions.VIEW_WORKSPACE,
|
||||||
Permissions.VIEW_APPLICATION_IN_WORKSPACE,
|
Permissions.VIEW_APPLICATION_IN_WORKSPACE,
|
||||||
],
|
],
|
||||||
|
@ -28,11 +28,11 @@ class Users(object):
|
|||||||
return user
|
return user
|
||||||
|
|
||||||
@classmethod
|
@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)
|
atat_role = Roles.get(atat_role_name)
|
||||||
|
|
||||||
try:
|
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.add(user)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
except IntegrityError:
|
except IntegrityError:
|
||||||
@ -46,7 +46,7 @@ class Users(object):
|
|||||||
try:
|
try:
|
||||||
user = Users.get_by_dod_id(dod_id)
|
user = Users.get_by_dod_id(dod_id)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
user = Users.create(dod_id=dod_id, **kwargs)
|
user = Users.create(dod_id, **kwargs)
|
||||||
db.session.add(user)
|
db.session.add(user)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
@ -8,13 +8,13 @@ DOD_ID = "my_dod_id"
|
|||||||
|
|
||||||
|
|
||||||
def test_create_user():
|
def test_create_user():
|
||||||
user = Users.create("developer", dod_id=DOD_ID)
|
user = Users.create(DOD_ID, "developer")
|
||||||
assert user.atat_role.name == "developer"
|
assert user.atat_role.name == "developer"
|
||||||
|
|
||||||
|
|
||||||
def test_create_user_with_nonexistent_role():
|
def test_create_user_with_nonexistent_role():
|
||||||
with pytest.raises(NotFoundError):
|
with pytest.raises(NotFoundError):
|
||||||
Users.create("nonexistent", dod_id=DOD_ID)
|
Users.create(DOD_ID, "nonexistent")
|
||||||
|
|
||||||
|
|
||||||
def test_get_or_create_nonexistent_user():
|
def test_get_or_create_nonexistent_user():
|
||||||
@ -29,37 +29,37 @@ def test_get_or_create_existing_user():
|
|||||||
|
|
||||||
|
|
||||||
def test_get_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)
|
user = Users.get(new_user.id)
|
||||||
assert user.id == new_user.id
|
assert user.id == new_user.id
|
||||||
|
|
||||||
|
|
||||||
def test_get_nonexistent_user():
|
def test_get_nonexistent_user():
|
||||||
Users.create("developer", dod_id=DOD_ID)
|
Users.create(DOD_ID, "developer")
|
||||||
with pytest.raises(NotFoundError):
|
with pytest.raises(NotFoundError):
|
||||||
Users.get(uuid4())
|
Users.get(uuid4())
|
||||||
|
|
||||||
|
|
||||||
def test_get_user_by_dod_id():
|
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)
|
user = Users.get_by_dod_id(DOD_ID)
|
||||||
assert user == new_user
|
assert user == new_user
|
||||||
|
|
||||||
|
|
||||||
def test_update_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")
|
updated_user = Users.update(new_user.id, "ccpo")
|
||||||
|
|
||||||
assert updated_user.atat_role.name == "ccpo"
|
assert updated_user.atat_role.name == "ccpo"
|
||||||
|
|
||||||
|
|
||||||
def test_update_nonexistent_user():
|
def test_update_nonexistent_user():
|
||||||
Users.create("developer", dod_id=DOD_ID)
|
Users.create(DOD_ID, "developer")
|
||||||
with pytest.raises(NotFoundError):
|
with pytest.raises(NotFoundError):
|
||||||
Users.update(uuid4(), "ccpo")
|
Users.update(uuid4(), "ccpo")
|
||||||
|
|
||||||
|
|
||||||
def test_update_existing_user_with_nonexistent_role():
|
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):
|
with pytest.raises(NotFoundError):
|
||||||
Users.update(new_user.id, "nonexistent")
|
Users.update(new_user.id, "nonexistent")
|
||||||
|
@ -9,6 +9,30 @@ from atst.domain.environment_roles import EnvironmentRoles
|
|||||||
from atst.models.workspace_user import WorkspaceUser
|
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):
|
def test_user_with_permission_has_add_project_link(client, user_session):
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
workspace = WorkspaceFactory.create()
|
workspace = WorkspaceFactory.create()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user