Add new error for when a resource is found but cannot be accessed

This commit is contained in:
leigh-mil 2019-03-06 15:22:22 -05:00
parent 4d0e5ebb4f
commit 66fe49855e
3 changed files with 12 additions and 2 deletions

View File

@ -34,3 +34,12 @@ class UnauthenticatedError(Exception):
class UploadError(Exception):
pass
class NoAccessError(Exception):
def __init__(self, resource_name):
self.resource_name = resource_name
@property
def message(self):
return "Route for {} cannot be accessed".format(self.resource_name)

View File

@ -27,6 +27,7 @@ def make_error_pages(app):
@app.errorhandler(exceptions.NotFoundError)
@app.errorhandler(exceptions.UnauthorizedError)
@app.errorhandler(PortfolioError)
@app.errorhandler(exceptions.NoAccessError)
# pylint: disable=unused-variable
def not_found(e):
return handle_error(e)

View File

@ -5,7 +5,7 @@ from flask import g, redirect, render_template, url_for, request as http_request
from . import portfolios_bp
from atst.database import db
from atst.domain.task_orders import TaskOrders, DD254s
from atst.domain.exceptions import NotFoundError
from atst.domain.exceptions import NotFoundError, NoAccessError
from atst.domain.portfolios import Portfolios
from atst.domain.authz import Authorization
from atst.forms.officers import EditTaskOrderOfficersForm
@ -93,7 +93,7 @@ def ko_review(portfolio_id, task_order_id):
form=KOReviewForm(obj=task_order),
)
else:
raise NotFoundError("task_order")
raise NoAccessError("task_order")
@portfolios_bp.route(