diff --git a/atst/domain/requests.py b/atst/domain/requests.py index c4b29cd9..891266ed 100644 --- a/atst/domain/requests.py +++ b/atst/domain/requests.py @@ -42,11 +42,14 @@ class Requests(object): @classmethod def exists(cls, request_id, creator_id): - return db.session.query( - exists().where( - and_(Request.id == request_id, Request.creator == creator_id) - ) - ).scalar() + try: + return db.session.query( + exists().where( + and_(Request.id == request_id, Request.creator == creator_id) + ) + ).scalar() + except exc.DataError: + return False @classmethod def get(cls, request_id): @@ -143,11 +146,3 @@ class Requests(object): return request.status == "incomplete" and all( section in existing_request_sections for section in all_request_sections ) - - @classmethod - def is_creator(cls, request_id, user_id): - try: - db.session.query(Request).filter_by(id=request_id, creator=user_id).one() - return True - except (NoResultFound, exc.DataError): - return False diff --git a/atst/routes/requests/requests_form.py b/atst/routes/requests/requests_form.py index ee03c155..ad415775 100644 --- a/atst/routes/requests/requests_form.py +++ b/atst/routes/requests/requests_form.py @@ -111,7 +111,7 @@ def requests_submit(request_id=None): def _check_can_view_request(request_id): if Permissions.REVIEW_AND_APPROVE_JEDI_WORKSPACE_REQUEST in g.current_user.atat_permissions: pass - elif Requests.is_creator(request_id, g.current_user.id): + elif Requests.exists(request_id, g.current_user.id): pass else: raise UnauthorizedError(g.current_user, "view request {}".format(request_id)) diff --git a/tests/domain/test_requests.py b/tests/domain/test_requests.py index 609dae90..d82c8ce4 100644 --- a/tests/domain/test_requests.py +++ b/tests/domain/test_requests.py @@ -50,9 +50,9 @@ def test_dont_auto_approve_if_no_dollar_value_specified(new_request): assert request.status == RequestStatus.PENDING_CCPO_APPROVAL -def test_can_check_if_user_created_request(session): +def test_exists(session): user_allowed = UserFactory.create() user_denied = UserFactory.create() request = RequestFactory.create(creator=user_allowed.id) - assert Requests.is_creator(request.id, user_allowed.id) - assert not Requests.is_creator(request.id, user_denied.id) + assert Requests.exists(request.id, user_allowed.id) + assert not Requests.exists(request.id, user_denied.id)