diff --git a/.htmlhintrc b/.htmlhintrc index 6f21fdde9..d40d8ac23 100644 --- a/.htmlhintrc +++ b/.htmlhintrc @@ -18,5 +18,6 @@ "space-tab-mixed-disabled": true, "id-class-ad-disabled": true, "href-abs-or-rel": false, - "attr-unsafe-chars": true + "attr-unsafe-chars": true, + "spec-char-escape": false } diff --git a/orchestra/interface_api/project_management/views.py b/orchestra/interface_api/project_management/views.py index 7e6c1f070..eb81e3cc8 100644 --- a/orchestra/interface_api/project_management/views.py +++ b/orchestra/interface_api/project_management/views.py @@ -1,6 +1,7 @@ import slacker from django.shortcuts import get_object_or_404 +from django.core.exceptions import PermissionDenied from jsonview.exceptions import BadRequest from rest_framework import generics from rest_framework import permissions @@ -51,7 +52,7 @@ def project_information_api(request): worker = get_object_or_404(Worker, user=request.user) if not (is_project_admin(request.user) or worker.assignments.filter(task__project=project_id).exists()): - raise BadRequest('Permission denied') + raise PermissionDenied try: return project_management.project_management_information(project_id) except Project.DoesNotExist: diff --git a/orchestra/models/__init__.py b/orchestra/models/__init__.py index 22d8b3b4d..3585da655 100644 --- a/orchestra/models/__init__.py +++ b/orchestra/models/__init__.py @@ -1,21 +1,21 @@ -from orchestra.models.communication.models import CommunicationPreference # noqa -from orchestra.models.communication.models import StaffBotRequest # noqa -from orchestra.models.communication.models import StaffingRequestInquiry # noqa -from orchestra.models.communication.models import StaffingResponse # noqa -from orchestra.models.core.models import Workflow # noqa -from orchestra.models.core.models import WorkflowVersion # noqa -from orchestra.models.core.models import Certification # noqa -from orchestra.models.core.models import Step # noqa -from orchestra.models.core.models import Worker # noqa -from orchestra.models.core.models import WorkerCertification # noqa -from orchestra.models.core.models import Project # noqa -from orchestra.models.core.models import Task # noqa -from orchestra.models.core.models import TaskAssignment # noqa -from orchestra.models.core.models import Iteration # noqa -from orchestra.models.core.models import TimeEntry # noqa -from orchestra.models.core.models import TaskTimer # noqa -from orchestra.models.core.models import Todo # noqa -from orchestra.models.core.models import PayRate # noqa +from orchestra.models.communication.models import CommunicationPreference +from orchestra.models.communication.models import StaffBotRequest +from orchestra.models.communication.models import StaffingRequestInquiry +from orchestra.models.communication.models import StaffingResponse +from orchestra.models.core.models import Workflow +from orchestra.models.core.models import WorkflowVersion +from orchestra.models.core.models import Certification +from orchestra.models.core.models import Step +from orchestra.models.core.models import Worker +from orchestra.models.core.models import WorkerCertification +from orchestra.models.core.models import Project +from orchestra.models.core.models import Task +from orchestra.models.core.models import TaskAssignment +from orchestra.models.core.models import Iteration +from orchestra.models.core.models import TimeEntry +from orchestra.models.core.models import TaskTimer +from orchestra.models.core.models import Todo +from orchestra.models.core.models import PayRate __all__ = [