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): class UploadError(Exception):
pass 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.NotFoundError)
@app.errorhandler(exceptions.UnauthorizedError) @app.errorhandler(exceptions.UnauthorizedError)
@app.errorhandler(PortfolioError) @app.errorhandler(PortfolioError)
@app.errorhandler(exceptions.NoAccessError)
# pylint: disable=unused-variable # pylint: disable=unused-variable
def not_found(e): def not_found(e):
return handle_error(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 . import portfolios_bp
from atst.database import db from atst.database import db
from atst.domain.task_orders import TaskOrders, DD254s 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.portfolios import Portfolios
from atst.domain.authz import Authorization from atst.domain.authz import Authorization
from atst.forms.officers import EditTaskOrderOfficersForm from atst.forms.officers import EditTaskOrderOfficersForm
@ -93,7 +93,7 @@ def ko_review(portfolio_id, task_order_id):
form=KOReviewForm(obj=task_order), form=KOReviewForm(obj=task_order),
) )
else: else:
raise NotFoundError("task_order") raise NoAccessError("task_order")
@portfolios_bp.route( @portfolios_bp.route(