Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ webpack_watch:

typecheck:
$(MYPY) --follow-imports silent \
specifyweb/permissions specifyweb/workbench specifyweb/backend/accounts \
specifyweb/backend/permissions specifyweb/workbench specifyweb/backend/accounts \
specifyweb/specify/schema.py specifyweb/specify/load_datamodel.py \
specifyweb/specify/api.py specifyweb/context/user_resources.py

Expand Down
2 changes: 1 addition & 1 deletion specifyweb/attachment_gw/dataset_views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from .models import Spattachmentdataset
from ..permissions.permissions import PermissionTarget, PermissionTargetAction, check_permission_targets
from specifyweb.backend.permissions.permissions import PermissionTarget, PermissionTargetAction, check_permission_targets
from django import http
import json
import datetime
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/backend/accounts/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from django.contrib.auth import views as auth_views
from django.urls import path

from specifyweb.permissions.permissions import skip_collection_access_check
from specifyweb.backend.permissions.permissions import skip_collection_access_check
from . import views

urlpatterns = [
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/backend/accounts/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

from specifyweb.middleware.general import require_GET, require_http_methods

from specifyweb.permissions.permissions import PermissionTarget, \
from specifyweb.backend.permissions.permissions import PermissionTarget, \
PermissionTargetAction, check_permission_targets
from specifyweb.specify import models as spmodels
from specifyweb.specify.views import login_maybe_required, openapi
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django.core.management.base import BaseCommand, CommandError

from specifyweb.permissions.initialize import initialize
from specifyweb.backend.permissions.initialize import initialize

class Command(BaseCommand):
def add_arguments(self, parser) -> None:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from django.db import migrations

def initialize(apps, schema_editor):
from specifyweb.permissions.initialize import initialize as init
from specifyweb.backend.permissions.initialize import initialize as init
init(wipe=True, apps=apps)

class Migration(migrations.Migration):
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion specifyweb/context/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from django.views.i18n import LANGUAGE_QUERY_PARAMETER

from specifyweb.middleware.general import require_http_methods
from specifyweb.permissions.permissions import PermissionTarget, \
from specifyweb.backend.permissions.permissions import PermissionTarget, \
PermissionTargetAction, \
check_permission_targets, skip_collection_access_check, query_pt, \
CollectionAccessPT
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/export/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from .feed import FEED_DIR, get_feed_resource, update_feed
from ..context.app_resource import get_app_resource
from ..notifications.models import Message
from ..permissions.permissions import PermissionTarget, PermissionTargetAction, \
from specifyweb.backend.permissions.permissions import PermissionTarget, PermissionTargetAction, \
check_permission_targets
from ..specify.models import Spquery
from ..specify.views import login_maybe_required
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/express_search/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from specifyweb.middleware.general import require_GET
from .search_terms import parse_search_str
from ..context.app_resource import get_app_resource
from ..permissions.permissions import check_table_permissions
from specifyweb.backend.permissions.permissions import check_table_permissions
from ..specify.api import toJson
from ..specify.models import datamodel, Collection
from ..specify.views import login_maybe_required
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/interactions/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
add_consolidated_sibling_co_ids
)
from specifyweb.middleware.general import require_GET
from specifyweb.permissions.permissions import check_table_permissions, table_permissions_checker
from specifyweb.backend.permissions.permissions import check_table_permissions, table_permissions_checker
from specifyweb.specify.api import get_resource, toJson, strict_uri_to_model
from specifyweb.specify.models import Collectionobject, Loan, Loanpreparation, \
Loanreturnpreparation, Preparation, Recordset, Recordsetitem
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/middleware/general.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def process_view(self, request, view_func, view_args, view_kwargs):
pass

def process_exception(self, request, exception) -> Optional[http.HttpResponse]:
from ..permissions.permissions import PermissionsException
from specifyweb.backend.permissions.permissions import PermissionsException
if not settings.DEBUG:
if isinstance(exception, PermissionsException):
return http.JsonResponse(exception.to_json(), status=exception.status_code, safe=False)
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/report_runner/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from django.views.decorators.http import require_POST

from specifyweb.middleware.general import require_GET, require_http_methods
from ..permissions.permissions import PermissionTarget, PermissionTargetAction, \
from specifyweb.backend.permissions.permissions import PermissionTarget, PermissionTargetAction, \
check_permission_targets, check_table_permissions
from ..specify.api import obj_to_data, toJson, \
HttpResponseCreated, objs_to_data_, _obj_to_data
Expand Down
4 changes: 2 additions & 2 deletions specifyweb/settings/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,15 +201,15 @@ def get_sa_db_url(db_name):
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'specifyweb.context.middleware.ContextMiddleware',
'specifyweb.permissions.middleware.PermissionsMiddleware',
'specifyweb.backend.permissions.middleware.PermissionsMiddleware',
'specifyweb.middleware.general.GeneralMiddleware',
]

ROOT_URLCONF = 'specifyweb.urls'

SPECIFY_APPS = [
'specifyweb.specify',
'specifyweb.permissions',
'specifyweb.backend.permissions',
'specifyweb.backend.accounts',
'specifyweb.stored_queries',
'specifyweb.businessrules',
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/specify/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
from django.core.exceptions import ObjectDoesNotExist, FieldError, FieldDoesNotExist
from django.db.models.fields import DateTimeField, FloatField, DecimalField

from specifyweb.permissions.permissions import (
from specifyweb.backend.permissions.permissions import (
enforce,
check_table_permissions,
check_field_permissions,
Expand Down
4 changes: 2 additions & 2 deletions specifyweb/specify/models_by_table_id.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,8 +470,8 @@ def import_model(model_name):
if model_name in model_names:
def get_model():
from importlib import import_module
if app_name == 'accounts':
module = import_module("specifyweb.backend.accounts.models")
if app_name in ['accounts', 'permissions']:
module = import_module(f"specifyweb.backend.{app_name}.models")
else:
module = import_module(f"specifyweb.{app_name}.models")
return getattr(module, model_name)
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/specify/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from django.db.models import Max, QuerySet
from django.test import TestCase, Client

from specifyweb.permissions.models import UserPolicy
from specifyweb.backend.permissions.models import UserPolicy
from specifyweb.specify import api, models, scoping
from specifyweb.businessrules.uniqueness_rules import UNIQUENESS_DISPATCH_UID, validate_unique, apply_default_uniqueness_rules
from specifyweb.businessrules.rules.cogtype_rules import SYSTEM_COGTYPES_PICKLIST
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from specifyweb.permissions.models import UserPolicy
from specifyweb.backend.permissions.models import UserPolicy
from specifyweb.specify.models import Agent, Specifyuser
from specifyweb.specify.tests.test_api import ApiTests
from specifyweb.specify.views import MissingAgentForAccessibleCollection, check_collection_access_against_agents
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/specify/tests/test_record_merge_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from django import http
from django.test import Client
from specifyweb.notifications.models import Spmerging, Message
from specifyweb.permissions.models import UserPolicy
from specifyweb.backend.permissions.models import UserPolicy
from specifyweb.specify.models import Agent
from specifyweb.specify.tests.test_api import ApiTests

Expand Down
2 changes: 1 addition & 1 deletion specifyweb/specify/tests/test_utils/test_get_app_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from specifyweb.businessrules import models as businessrules_models
from specifyweb.context import models as context_models
from specifyweb.notifications import models as notifications_models
from specifyweb.permissions import models as permissions_models
from specifyweb.backend.permissions import models as permissions_models
from specifyweb.interactions import models as interactions_models
from specifyweb.workbench import models as workbench_models
from specifyweb.specify import models as spmodels
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/specify/tree_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

from specifyweb.middleware.general import require_GET
from specifyweb.businessrules.exceptions import BusinessRuleException
from specifyweb.permissions.permissions import PermissionTarget, PermissionTargetAction, check_permission_targets, has_table_permission
from specifyweb.backend.permissions.permissions import PermissionTarget, PermissionTargetAction, check_permission_targets, has_table_permission

from specifyweb.stored_queries import models as sqlmodels
from specifyweb.stored_queries.execution import set_group_concat_max_len
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/specify/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from specifyweb.businessrules import models as businessrules_models
from specifyweb.context import models as context_models
from specifyweb.notifications import models as notifications_models
from specifyweb.permissions import models as permissions_models
from specifyweb.backend.permissions import models as permissions_models
from specifyweb.interactions import models as interactions_models
from specifyweb.workbench import models as workbench_models
from specifyweb.specify import models as spmodels
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/specify/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from specifyweb.specify.api import get_model

from specifyweb.middleware.general import require_GET, require_http_methods
from specifyweb.permissions.permissions import PermissionTarget, \
from specifyweb.backend.permissions.permissions import PermissionTarget, \
PermissionTargetAction, PermissionsException, check_permission_targets, table_permissions_checker
from specifyweb.celery_tasks import app, CELERY_TASK_STATE
from specifyweb.specify.record_merging import record_merge_fx, record_merge_task, resolve_record_merge_response
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/stats/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django import http

from specifyweb.permissions.permissions import check_table_permissions
from specifyweb.backend.permissions.permissions import check_table_permissions
from specifyweb.specify.views import openapi
from django.http import HttpResponse, Http404

Expand Down
2 changes: 1 addition & 1 deletion specifyweb/stored_queries/batch_edit.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
TypedDict,
)

from specifyweb.permissions.permissions import has_target_permission
from specifyweb.backend.permissions.permissions import has_target_permission
from specifyweb.specify.filter_by_col import CONCRETE_HIERARCHY
from specifyweb.specify.models import datamodel
from specifyweb.specify.load_datamodel import Field, Relationship, Table
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/stored_queries/execution.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
from .relative_date_utils import apply_absolute_date
from .field_spec_maps import apply_specify_user_name
from ..notifications.models import Message
from ..permissions.permissions import check_table_permissions
from specifyweb.backend.permissions.permissions import check_table_permissions
from ..specify.auditlog import auditlog
from ..specify.models import Collectionobjectgroupjoin, Loan, Loanpreparation, Loanreturnpreparation, Taxontreedef
from specifyweb.specify.utils import get_cat_num_inheritance_setting, log_sqlalchemy_query
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/stored_queries/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from .execution import execute, run_ephemeral_query, do_export, recordset, \
return_loan_preps as rlp
from .queryfield import QueryField
from ..permissions.permissions import PermissionTarget, PermissionTargetAction, \
from specifyweb.backend.permissions.permissions import PermissionTarget, PermissionTargetAction, \
check_permission_targets, check_table_permissions
from ..specify.api import toJson, uri_for_model
from ..specify.models import Collection, Recordset, Recordsetitem, \
Expand Down
4 changes: 2 additions & 2 deletions specifyweb/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
from .frontend.views import open_search as search_view
from .interactions import urls as interaction_urls
from .notifications import urls as notification_urls
from .permissions import urls as permissions_urls
from .permissions.permissions import skip_collection_access_check
from specifyweb.backend.permissions import urls as permissions_urls
from specifyweb.backend.permissions.permissions import skip_collection_access_check
from .report_runner import urls as report_urls
from .specify import urls as api_urls
from .specify.views import images, properties
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/workbench/permissions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from specifyweb.permissions.permissions import PermissionTarget, PermissionTargetAction
from specifyweb.backend.permissions.permissions import PermissionTarget, PermissionTargetAction


class DataSetPT(PermissionTarget):
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/workbench/upload/auditor.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@


from specifyweb.specify.auditlog import AuditLog
from specifyweb.permissions.permissions import (
from specifyweb.backend.permissions.permissions import (
TABLE_ACTION,
check_table_permissions,
)
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/workbench/upload/upload.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from django.db.utils import OperationalError, IntegrityError
from jsonschema import validate # type: ignore

from specifyweb.permissions.permissions import has_target_permission
from specifyweb.backend.permissions.permissions import has_target_permission
from specifyweb.specify import models
from specifyweb.specify.auditlog import auditlog
from specifyweb.specify.datamodel import Table
Expand Down
2 changes: 1 addition & 1 deletion specifyweb/workbench/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from specifyweb.specify.views import login_maybe_required, openapi
from specifyweb.specify.models import Recordset, Specifyuser
from specifyweb.notifications.models import Message
from specifyweb.permissions.permissions import (
from specifyweb.backend.permissions.permissions import (
check_permission_targets,
check_table_permissions,
)
Expand Down