diff --git a/.gitignore b/.gitignore index 201ad60b..a7265761 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ venv/** */static/** __pycache__ -**.sqlite3 +**.sqlite* **.sqlite **.coverage .coverage* diff --git a/Release-Notes.md b/Release-Notes.md index 88c08fd9..e30776a1 100644 --- a/Release-Notes.md +++ b/Release-Notes.md @@ -16,6 +16,10 @@ With this new setting, the previous setting `LOGGING` will no longer function. +- Renamed `Organization` model to `Tenant` so as to reflect what is actually is. + +- `robots.txt` file now being served from the API container at path `/robots.txt` with `User-agent: *` and `Disallow: /` + ## Version 1.16.0 diff --git a/app/access/admin.py b/app/access/admin.py index a519b93c..b0a55617 100644 --- a/app/access/admin.py +++ b/app/access/admin.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Group from django.contrib.auth.admin import UserAdmin -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/forms/organization.py b/app/access/forms/organization.py index 94678d84..2cb0412e 100644 --- a/app/access/forms/organization.py +++ b/app/access/forms/organization.py @@ -3,7 +3,7 @@ from django.db.models import Q from app import settings -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.forms.common import CommonModelForm diff --git a/app/access/middleware/request.py b/app/access/middleware/request.py index 460234d8..c609fb74 100644 --- a/app/access/middleware/request.py +++ b/app/access/middleware/request.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import Group from django.utils.deprecation import MiddlewareMixin -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team diff --git a/app/access/migrations/0007_rename_organization_tenant.py b/app/access/migrations/0007_rename_organization_tenant.py new file mode 100644 index 00000000..284afd96 --- /dev/null +++ b/app/access/migrations/0007_rename_organization_tenant.py @@ -0,0 +1,26 @@ +# Generated by Django 5.1.9 on 2025-05-14 11:06 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0005_entity_person_entityhistory_entitynotes_role_and_more'), + ('accounting', '0003_assetbasenotes'), + ('assistance', '0005_knowledgebasecategoryhistory_knowledgebasehistory'), + ('config_management', '0007_configgroupshistory_configgrouphostshistory_and_more'), + ('core', '0025_ticketcommentaction'), + ('devops', '0011_alter_gitgroup_unique_together_and_more'), + ('itam', '0011_itamassetbase'), + ('itim', '0009_slmticket_requestticket'), + ('project_management', '0005_projecthistory_projectmilestonehistory_and_more'), + ('settings', '0011_appsettingshistory_externallinkhistory'), + ] + + operations = [ + migrations.RenameModel( + old_name = 'Organization', + new_name = 'Tenant' + ), + ] diff --git a/app/access/migrations/0008_alter_tenant_options_alter_entity_organization_and_more.py b/app/access/migrations/0008_alter_tenant_options_alter_entity_organization_and_more.py new file mode 100644 index 00000000..22e36bdb --- /dev/null +++ b/app/access/migrations/0008_alter_tenant_options_alter_entity_organization_and_more.py @@ -0,0 +1,47 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.team +import access.models.tenancy +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0007_rename_organization_tenant'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterModelOptions( + name='tenant', + options={'ordering': ['name'], 'verbose_name': 'Tenant', 'verbose_name_plural': 'Tenants'}, + ), + migrations.AlterField( + model_name='entity', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='role', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='team', + name='organization', + field=models.ForeignKey(help_text='Tenant this belongs to', on_delete=django.db.models.deletion.CASCADE, to='access.tenant', validators=[access.models.team.Team.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='tenant', + name='manager', + field=models.ForeignKey(help_text='Manager for this Tenancy', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Manager'), + ), + migrations.AlterField( + model_name='tenant', + name='name', + field=models.CharField(help_text='Name of this Tenancy', max_length=50, unique=True, verbose_name='Name'), + ), + ] diff --git a/app/access/mixin.py b/app/access/mixin.py index dddf1714..4bebe8f8 100644 --- a/app/access/mixin.py +++ b/app/access/mixin.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Group from django.core.exceptions import PermissionDenied from django.utils.functional import cached_property -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team @@ -260,7 +260,7 @@ class OrganizationMixin(): self.permission_required = permissions_required organization_manager_models = [ - 'access.organization', + 'access.tenant', 'access.team', 'access.teamusers', ] @@ -326,7 +326,7 @@ class OrganizationMixin(): if required_permission.replace( 'view_', '' - ) == 'access.organization' and len(self.kwargs) == 0: + ) == 'access.tenant' and len(self.kwargs) == 0: return True diff --git a/app/access/mixins/organization.py b/app/access/mixins/organization.py index a90103a6..1d318f81 100644 --- a/app/access/mixins/organization.py +++ b/app/access/mixins/organization.py @@ -3,7 +3,7 @@ import django from django.contrib.auth.models import Group from django.db import models -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team User = django.contrib.auth.get_user_model() @@ -93,7 +93,7 @@ class OrganizationMixin: self._obj_organization = obj.organization - elif str(self.model._meta.verbose_name).lower() == 'organization': + elif str(self.model._meta.verbose_name).lower() == 'tenant': self._obj_organization = obj diff --git a/app/access/mixins/permissions.py b/app/access/mixins/permissions.py index c64808d6..9b9d31f9 100644 --- a/app/access/mixins/permissions.py +++ b/app/access/mixins/permissions.py @@ -5,7 +5,7 @@ from django.core.exceptions import ObjectDoesNotExist from rest_framework import exceptions from rest_framework.permissions import DjangoObjectPermissions -from access.models.tenancy import Organization, TenancyObject +from access.models.tenancy import Tenant, TenancyObject from core import exceptions as centurion_exceptions @@ -14,10 +14,10 @@ from core import exceptions as centurion_exceptions class OrganizationPermissionMixin( DjangoObjectPermissions, ): - """Organization Permission Mixin + """Tenant Permission Mixin This class is to be used as the permission class for API `Views`/`ViewSets`. - In combination with the `OrganizationPermissionsMixin`, permission checking + In combination with the `TenantPermissionsMixin`, permission checking will be done to ensure the user has the correct permissions to perform the CRUD operation. @@ -166,7 +166,7 @@ class OrganizationPermissionMixin( raise centurion_exceptions.PermissionDenied() - obj_organization: Organization = view.get_obj_organization( + obj_organization: Tenant = view.get_obj_organization( request = request ) diff --git a/app/access/models/organization.py b/app/access/models/organization.py index b7561019..c7f5047a 100644 --- a/app/access/models/organization.py +++ b/app/access/models/organization.py @@ -1,159 +1 @@ -import django - -from django.conf import settings -from django.db import models - -from rest_framework.reverse import reverse - -from access.fields import ( - AutoCreatedField, - AutoLastModifiedField, - AutoSlugField -) - -from core.mixin.history_save import SaveHistory - -User = django.contrib.auth.get_user_model() - - - -class Organization(SaveHistory): - - class Meta: - verbose_name = "Organization" - verbose_name_plural = "Organizations" - ordering = ['name'] - - def save(self, *args, **kwargs): - - if self.slug == '_': - self.slug = self.name.lower().replace(' ', '_') - - super().save(*args, **kwargs) - - id = models.AutoField( - blank=False, - help_text = 'ID of this item', - primary_key=True, - unique=True, - verbose_name = 'ID' - ) - - name = models.CharField( - blank = False, - help_text = 'Name of this Organization', - max_length = 50, - unique = True, - verbose_name = 'Name' - ) - - manager = models.ForeignKey( - settings.AUTH_USER_MODEL, - blank = False, - help_text = 'Manager for this organization', - null = True, - on_delete=models.SET_NULL, - verbose_name = 'Manager' - ) - - model_notes = models.TextField( - blank = True, - default = None, - help_text = 'Tid bits of information', - null= True, - verbose_name = 'Notes', - ) - - slug = AutoSlugField() - - created = AutoCreatedField() - - modified = AutoLastModifiedField() - - - def get_organization(self): - return self - - def __int__(self): - - return self.id - - def __str__(self): - return self.name - - table_fields: list = [ - 'nbsp', - 'name', - 'created', - 'modified', - 'nbsp' - ] - - page_layout: list = [ - { - "name": "Details", - "slug": "details", - "sections": [ - { - "layout": "double", - "left": [ - 'name', - 'manager', - 'created', - 'modified', - ], - "right": [ - 'model_notes', - ] - } - ] - }, - { - "name": "Teams", - "slug": "teams", - "sections": [ - { - "layout": "table", - "field": "teams" - } - ] - }, - { - "name": "Knowledge Base", - "slug": "kb_articles", - "sections": [ - { - "layout": "table", - "field": "knowledge_base", - } - ] - }, - { - "name": "Notes", - "slug": "notes", - "sections": [] - } - ] - - - def get_url( self, request = None ) -> str: - - if request: - - return reverse("v2:_api_v2_organization-detail", request=request, kwargs={'pk': self.id}) - - return reverse("v2:_api_v2_organization-detail", kwargs={'pk': self.id}) - - - def save_history(self, before: dict, after: dict) -> bool: - - from access.models.organization_history import OrganizationHistory - - history = super().save_history( - before = before, - after = after, - history_model = OrganizationHistory - ) - - - return history +from .tenant import Tenant as Organization diff --git a/app/access/models/organization_history.py b/app/access/models/organization_history.py index cd688f8e..e9603a29 100644 --- a/app/access/models/organization_history.py +++ b/app/access/models/organization_history.py @@ -2,7 +2,7 @@ from django.db import models from core.models.model_history import ModelHistory -from access.models.organization import Organization +from access.models.tenant import Tenant @@ -23,7 +23,7 @@ class OrganizationHistory( model = models.ForeignKey( - Organization, + Tenant, blank = False, help_text = 'Model this note belongs to', null = False, @@ -46,8 +46,8 @@ class OrganizationHistory( model = None - from access.serializers.organization import OrganizationBaseSerializer + from access.serializers.organization import TenantBaseSerializer - model = OrganizationBaseSerializer(self.model, context = serializer_context) + model = TenantBaseSerializer(self.model, context = serializer_context) return model diff --git a/app/access/models/organization_notes.py b/app/access/models/organization_notes.py index 6a495239..468a0141 100644 --- a/app/access/models/organization_notes.py +++ b/app/access/models/organization_notes.py @@ -1,6 +1,6 @@ from django.db import models -from access.models.organization import Organization +from access.models.tenant import Tenant from core.models.model_notes import ModelNotes @@ -23,7 +23,7 @@ class OrganizationNotes( model = models.ForeignKey( - Organization, + Tenant, blank = False, help_text = 'Model this note belongs to', null = False, diff --git a/app/access/models/team.py b/app/access/models/team.py index adfef107..25142abd 100644 --- a/app/access/models/team.py +++ b/app/access/models/team.py @@ -8,7 +8,7 @@ from access.fields import ( AutoLastModifiedField ) -from access.models.organization import Organization +from access.models.tenant import Tenant from access.models.tenancy import TenancyObject from core import exceptions as centurion_exceptions @@ -55,13 +55,13 @@ class Team(Group, TenancyObject): ) organization = models.ForeignKey( - Organization, + Tenant, blank = False, - help_text = 'Organization this belongs to', + help_text = 'Tenant this belongs to', null = False, on_delete = models.CASCADE, validators = [validatate_organization_exists], - verbose_name = 'Organization' + verbose_name = 'Tenant' ) created = AutoCreatedField() diff --git a/app/access/models/team_user.py b/app/access/models/team_user.py index d8aa0fdc..aacb213b 100644 --- a/app/access/models/team_user.py +++ b/app/access/models/team_user.py @@ -11,7 +11,7 @@ from access.fields import ( AutoLastModifiedField ) -from access.models.organization import Organization +from access.models.tenant import Tenant from access.models.team import Team from core.lib.feature_not_used import FeatureNotUsed @@ -99,7 +99,7 @@ class TeamUsers(SaveHistory): user.groups.remove(group) - def get_organization(self) -> Organization: + def get_organization(self) -> Tenant: return self.team.organization diff --git a/app/access/models/tenancy.py b/app/access/models/tenancy.py index a44dc2d8..d8f28704 100644 --- a/app/access/models/tenancy.py +++ b/app/access/models/tenancy.py @@ -5,7 +5,7 @@ from django.db import models from rest_framework.reverse import reverse -from access.models.organization import Organization +from access.models.tenant import Tenant from core import exceptions as centurion_exceptions from core.middleware.get_request import get_request @@ -136,14 +136,14 @@ class TenancyObject(SaveHistory): ) organization = models.ForeignKey( - Organization, + Tenant, blank = False, - help_text = 'Organization this belongs to', + help_text = 'Tenancy this belongs to', null = False, on_delete = models.CASCADE, related_name = '+', validators = [validatate_organization_exists], - verbose_name = 'Organization' + verbose_name = 'Tenant' ) is_global = models.BooleanField( @@ -161,7 +161,7 @@ class TenancyObject(SaveHistory): verbose_name = 'Notes', ) - def get_organization(self) -> Organization: + def get_organization(self) -> Tenant: return self.organization app_namespace: str = None @@ -291,7 +291,7 @@ class TenancyObject(SaveHistory): raise centurion_exceptions.ValidationError( detail = { - 'organization': 'Organization is required' + 'organization': 'Tenant is required' }, code = 'required' ) diff --git a/app/access/models/tenant.py b/app/access/models/tenant.py new file mode 100644 index 00000000..dd625d39 --- /dev/null +++ b/app/access/models/tenant.py @@ -0,0 +1,161 @@ +import django + +from django.conf import settings +from django.db import models + +from rest_framework.reverse import reverse + +from access.fields import ( + AutoCreatedField, + AutoLastModifiedField, + AutoSlugField +) + +from core.mixin.history_save import SaveHistory + +User = django.contrib.auth.get_user_model() + +class Tenant(SaveHistory): + + class Meta: + verbose_name = "Tenant" + verbose_name_plural = "Tenants" + ordering = ['name'] + + def save(self, *args, **kwargs): + + if self.slug == '_': + self.slug = self.name.lower().replace(' ', '_') + + super().save(*args, **kwargs) + + id = models.AutoField( + blank=False, + help_text = 'ID of this item', + primary_key=True, + unique=True, + verbose_name = 'ID' + ) + + name = models.CharField( + blank = False, + help_text = 'Name of this Tenancy', + max_length = 50, + unique = True, + verbose_name = 'Name' + ) + + manager = models.ForeignKey( + settings.AUTH_USER_MODEL, + blank = False, + help_text = 'Manager for this Tenancy', + null = True, + on_delete=models.SET_NULL, + verbose_name = 'Manager' + ) + + model_notes = models.TextField( + blank = True, + default = None, + help_text = 'Tid bits of information', + null= True, + verbose_name = 'Notes', + ) + + slug = AutoSlugField() + + created = AutoCreatedField() + + modified = AutoLastModifiedField() + + + def get_organization(self): + return self + + def __int__(self): + + return self.id + + def __str__(self): + return self.name + + table_fields: list = [ + 'nbsp', + 'name', + 'created', + 'modified', + 'nbsp' + ] + + page_layout: list = [ + { + "name": "Details", + "slug": "details", + "sections": [ + { + "layout": "double", + "left": [ + 'name', + 'manager', + 'created', + 'modified', + ], + "right": [ + 'model_notes', + ] + } + ] + }, + { + "name": "Teams", + "slug": "teams", + "sections": [ + { + "layout": "table", + "field": "teams" + } + ] + }, + { + "name": "Knowledge Base", + "slug": "kb_articles", + "sections": [ + { + "layout": "table", + "field": "knowledge_base", + } + ] + }, + { + "name": "Notes", + "slug": "notes", + "sections": [] + } + ] + + + def get_url( self, request = None ) -> str: + + if request: + + return reverse("v2:_api_v2_organization-detail", request=request, kwargs={'pk': self.id}) + + return reverse("v2:_api_v2_organization-detail", kwargs={'pk': self.id}) + + + def save_history(self, before: dict, after: dict) -> bool: + + from access.models.organization_history import OrganizationHistory + + history = super().save_history( + before = before, + after = after, + history_model = OrganizationHistory + ) + + + return history + + + +Organization = Tenant diff --git a/app/access/serializers/entity.py b/app/access/serializers/entity.py index 0e5cbb65..336355e1 100644 --- a/app/access/serializers/entity.py +++ b/app/access/serializers/entity.py @@ -6,7 +6,7 @@ from access.models.entity import Entity from api.serializers import common -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer @@ -87,4 +87,4 @@ class ModelSerializer( class ViewSerializer(ModelSerializer): """Entity Base View Model""" - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/access/serializers/entity_contact.py b/app/access/serializers/entity_contact.py index 8cb72ae5..3343ab16 100644 --- a/app/access/serializers/entity_contact.py +++ b/app/access/serializers/entity_contact.py @@ -6,7 +6,7 @@ from access.serializers.entity_person import ( BaseSerializer as BaseBaseSerializer, ModelSerializer as BaseModelSerializer, ) -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer @@ -72,4 +72,4 @@ class ViewSerializer( This model inherits from the Person model. """ - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/access/serializers/entity_person.py b/app/access/serializers/entity_person.py index 1ad706b4..6b5b2489 100644 --- a/app/access/serializers/entity_person.py +++ b/app/access/serializers/entity_person.py @@ -6,7 +6,7 @@ from access.serializers.entity import ( BaseSerializer as BaseBaseSerializer, ModelSerializer as BaseModelSerializer, ) -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer @@ -70,4 +70,4 @@ class ViewSerializer( This model inherits from the Entity base model. """ - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/access/serializers/organization.py b/app/access/serializers/organization.py index 993d76c8..7645b947 100644 --- a/app/access/serializers/organization.py +++ b/app/access/serializers/organization.py @@ -2,15 +2,16 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.models.organization import Organization +from access.models.tenant import Tenant from app.serializers.user import UserBaseSerializer from core import fields as centurion_field +Organization = Tenant -class OrganizationBaseSerializer(serializers.ModelSerializer): +class TenantBaseSerializer(serializers.ModelSerializer): display_name = serializers.SerializerMethodField('get_display_name') @@ -24,7 +25,7 @@ class OrganizationBaseSerializer(serializers.ModelSerializer): class Meta: - model = Organization + model = Tenant fields = [ 'id', @@ -42,8 +43,8 @@ class OrganizationBaseSerializer(serializers.ModelSerializer): -class OrganizationModelSerializer( - OrganizationBaseSerializer +class TenantModelSerializer( + TenantBaseSerializer ): _urls = serializers.SerializerMethodField('get_url') @@ -74,7 +75,7 @@ class OrganizationModelSerializer( class Meta: - model = Organization + model = Tenant fields = '__all__' @@ -98,7 +99,7 @@ class OrganizationModelSerializer( ] -class OrganizationViewSerializer(OrganizationModelSerializer): +class TenantViewSerializer(TenantModelSerializer): pass manager = UserBaseSerializer(many=False, read_only = True) diff --git a/app/access/serializers/role.py b/app/access/serializers/role.py index 1012f949..597334ad 100644 --- a/app/access/serializers/role.py +++ b/app/access/serializers/role.py @@ -5,7 +5,7 @@ from drf_spectacular.utils import extend_schema_serializer from access.functions.permissions import permission_queryset from access.models.role import Role -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -109,6 +109,6 @@ class ModelSerializer( class ViewSerializer(ModelSerializer): """Role Base View Model""" - organization = OrganizationBaseSerializer( many=False, read_only=True ) + organization = TenantBaseSerializer( many=False, read_only=True ) permissions = PermissionBaseSerializer( many=True, read_only=True ) diff --git a/app/access/serializers/teams.py b/app/access/serializers/teams.py index c32185b2..d677a9c3 100644 --- a/app/access/serializers/teams.py +++ b/app/access/serializers/teams.py @@ -7,7 +7,7 @@ from access.models.team import Team from api.serializers import common from access.functions.permissions import permission_queryset -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from app.serializers.permission import Permission, PermissionBaseSerializer @@ -127,6 +127,6 @@ class TeamModelSerializer( class TeamViewSerializer(TeamModelSerializer): - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) permissions = PermissionBaseSerializer(many = True) diff --git a/app/access/tests/functional/entity/test_functional_entity_serializer.py b/app/access/tests/functional/entity/test_functional_entity_serializer.py index 6d84fcf7..6b6e8c01 100644 --- a/app/access/tests/functional/entity/test_functional_entity_serializer.py +++ b/app/access/tests/functional/entity/test_functional_entity_serializer.py @@ -2,7 +2,7 @@ import pytest from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.serializers.entity import ( Entity, ModelSerializer diff --git a/app/access/tests/functional/entity/test_functional_entity_viewset.py b/app/access/tests/functional/entity/test_functional_entity_viewset.py index 7d1d4720..e0445551 100644 --- a/app/access/tests/functional/entity/test_functional_entity_viewset.py +++ b/app/access/tests/functional/entity/test_functional_entity_viewset.py @@ -5,7 +5,7 @@ from django.contrib.contenttypes.models import ContentType from django.test import TestCase from access.models.entity import Entity -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/functional/organization/test_organization_history.py b/app/access/tests/functional/organization/test_organization_history.py index 1bcf6978..e562285d 100644 --- a/app/access/tests/functional/organization/test_organization_history.py +++ b/app/access/tests/functional/organization/test_organization_history.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization_history import Organization, OrganizationHistory +from access.models.organization_history import Tenant as Organization, OrganizationHistory from core.tests.abstract.test_functional_history import HistoryEntriesCommon diff --git a/app/access/tests/functional/organization/test_organization_serializer.py b/app/access/tests/functional/organization/test_organization_serializer.py index d5abfcd3..88855252 100644 --- a/app/access/tests/functional/organization/test_organization_serializer.py +++ b/app/access/tests/functional/organization/test_organization_serializer.py @@ -6,8 +6,8 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError from access.serializers.organization import ( - Organization, - OrganizationModelSerializer + Tenant, + TenantModelSerializer ) User = django.contrib.auth.get_user_model() @@ -18,7 +18,7 @@ class OrganizationValidationAPI( TestCase, ): - model = Organization + model = Tenant @classmethod def setUpTestData(self): @@ -47,7 +47,7 @@ class OrganizationValidationAPI( Ensure that if creating and no name is provided a validation error occurs """ - serializer = OrganizationModelSerializer( + serializer = TenantModelSerializer( data = self.valid_data ) @@ -67,7 +67,7 @@ class OrganizationValidationAPI( with pytest.raises(ValidationError) as err: - serializer = OrganizationModelSerializer( + serializer = TenantModelSerializer( data = data ) @@ -87,7 +87,7 @@ class OrganizationValidationAPI( del data['manager'] - serializer = OrganizationModelSerializer( + serializer = TenantModelSerializer( data = data ) diff --git a/app/access/tests/functional/organization/test_organization_viewset.py b/app/access/tests/functional/organization/test_organization_viewset.py index 75575d95..1ba090cd 100644 --- a/app/access/tests/functional/organization/test_organization_viewset.py +++ b/app/access/tests/functional/organization/test_organization_viewset.py @@ -10,7 +10,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers @@ -318,4 +318,4 @@ class OrganizationMetadata( menu_id = 'access' - menu_entry_id = 'organization' \ No newline at end of file + menu_entry_id = 'tenant' \ No newline at end of file diff --git a/app/access/tests/functional/organization_notes/test_organization_notes_api_v2.py b/app/access/tests/functional/organization_notes/test_organization_notes_api_v2.py index 1153ded8..05aadcbf 100644 --- a/app/access/tests/functional/organization_notes/test_organization_notes_api_v2.py +++ b/app/access/tests/functional/organization_notes/test_organization_notes_api_v2.py @@ -3,7 +3,7 @@ from django.test import TestCase from core.tests.abstract.model_notes_api_fields import ModelNotesNotesAPIFields -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.organization_notes import OrganizationNotes diff --git a/app/access/tests/functional/role/test_functional_role_serializer.py b/app/access/tests/functional/role/test_functional_role_serializer.py index 73235089..62597500 100644 --- a/app/access/tests/functional/role/test_functional_role_serializer.py +++ b/app/access/tests/functional/role/test_functional_role_serializer.py @@ -5,7 +5,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.serializers.role import Role, ModelSerializer diff --git a/app/access/tests/functional/role/test_functional_role_viewset.py b/app/access/tests/functional/role/test_functional_role_viewset.py index b2eafa8c..b0b8ef18 100644 --- a/app/access/tests/functional/role/test_functional_role_viewset.py +++ b/app/access/tests/functional/role/test_functional_role_viewset.py @@ -6,7 +6,7 @@ from django.test import Client, TestCase from rest_framework.reverse import reverse from access.models.role import Role -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/functional/team/test_team_permission_viewset.py b/app/access/tests/functional/team/test_team_permission_viewset.py index ec001554..a9b52cd2 100644 --- a/app/access/tests/functional/team/test_team_permission_viewset.py +++ b/app/access/tests/functional/team/test_team_permission_viewset.py @@ -11,7 +11,7 @@ from django.test import Client, TestCase from rest_framework.reverse import reverse -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/functional/team/test_team_serializer.py b/app/access/tests/functional/team/test_team_serializer.py index 0135ced1..bbabf2bf 100644 --- a/app/access/tests/functional/team/test_team_serializer.py +++ b/app/access/tests/functional/team/test_team_serializer.py @@ -9,7 +9,7 @@ from rest_framework.exceptions import ValidationError from access.middleware.request import Tenancy -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.serializers.teams import ( Team, diff --git a/app/access/tests/functional/team_user/test_team_user_permission_viewset.py b/app/access/tests/functional/team_user/test_team_user_permission_viewset.py index 8855b9ca..5740d533 100644 --- a/app/access/tests/functional/team_user/test_team_user_permission_viewset.py +++ b/app/access/tests/functional/team_user/test_team_user_permission_viewset.py @@ -11,7 +11,7 @@ from django.test import Client, TestCase from rest_framework.reverse import reverse -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/functional/team_user/test_team_user_serializer.py b/app/access/tests/functional/team_user/test_team_user_serializer.py index 694ee624..b8412d19 100644 --- a/app/access/tests/functional/team_user/test_team_user_serializer.py +++ b/app/access/tests/functional/team_user/test_team_user_serializer.py @@ -7,7 +7,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.serializers.team_user import ( diff --git a/app/access/tests/unit/entity/test_unit_entity_api_v2.py b/app/access/tests/unit/entity/test_unit_entity_api_v2.py index c0d1310c..aee1c266 100644 --- a/app/access/tests/unit/entity/test_unit_entity_api_v2.py +++ b/app/access/tests/unit/entity/test_unit_entity_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase # from rest_framework.relations import Hyperlink from access.models.entity import Entity -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/mixin/test_permission.py b/app/access/tests/unit/mixin/test_permission.py index ce04fddf..9e4f36b2 100644 --- a/app/access/tests/unit/mixin/test_permission.py +++ b/app/access/tests/unit/mixin/test_permission.py @@ -15,7 +15,7 @@ from api.viewsets.common import ModelViewSet from access.mixins.organization import OrganizationMixin from access.mixins.permissions import OrganizationPermissionMixin -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/organization/test_organizaiton_api.py b/app/access/tests/unit/organization/test_organizaiton_api.py index 8e6b0f47..31c4a153 100644 --- a/app/access/tests/unit/organization/test_organizaiton_api.py +++ b/app/access/tests/unit/organization/test_organizaiton_api.py @@ -10,7 +10,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/organization/test_organizaiton_api_v2.py b/app/access/tests/unit/organization/test_organizaiton_api_v2.py index 73b9f36f..9ffe6e03 100644 --- a/app/access/tests/unit/organization/test_organizaiton_api_v2.py +++ b/app/access/tests/unit/organization/test_organizaiton_api_v2.py @@ -10,7 +10,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/organization/test_organizaiton_permission.py b/app/access/tests/unit/organization/test_organizaiton_permission.py index e90b71f8..989fa432 100644 --- a/app/access/tests/unit/organization/test_organizaiton_permission.py +++ b/app/access/tests/unit/organization/test_organizaiton_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant from access.models.team import Team from access.models.team_user import TeamUsers from access.tests.abstract.model_permissions_organization_manager import OrganizationManagerModelPermissionChange, OrganizationManagerModelPermissionView @@ -20,7 +20,7 @@ from app.tests.abstract.model_permissions import ModelPermissionsView, ModelPerm User = django.contrib.auth.get_user_model() -class OrganizationPermissions( +class TenantPermissions( TestCase, ModelPermissionsView, ModelPermissionsChange, @@ -28,7 +28,7 @@ class OrganizationPermissions( OrganizationManagerModelPermissionView, ): - model = Organization + model = Tenant app_namespace = 'Access' @@ -53,11 +53,11 @@ class OrganizationPermissions( 4. create a user per team """ - organization = Organization.objects.create(name='test_org') + organization = Tenant.objects.create(name='test_org') self.organization = organization - different_organization = Organization.objects.create( + different_organization = Tenant.objects.create( name='test_different_organization' ) diff --git a/app/access/tests/unit/organization/test_organizaiton_permission_api.py b/app/access/tests/unit/organization/test_organizaiton_permission_api.py index 46f2f416..4d39a833 100644 --- a/app/access/tests/unit/organization/test_organizaiton_permission_api.py +++ b/app/access/tests/unit/organization/test_organizaiton_permission_api.py @@ -8,7 +8,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/organization/test_organization.py b/app/access/tests/unit/organization/test_organization.py index 00e5abe8..efb31bb8 100644 --- a/app/access/tests/unit/organization/test_organization.py +++ b/app/access/tests/unit/organization/test_organization.py @@ -7,7 +7,7 @@ import unittest from django.contrib.auth import get_user_model from django.core.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team diff --git a/app/access/tests/unit/organization/test_unit_organization_history_api_v2.py b/app/access/tests/unit/organization/test_unit_organization_history_api_v2.py index 443722b0..3fd241df 100644 --- a/app/access/tests/unit/organization/test_unit_organization_history_api_v2.py +++ b/app/access/tests/unit/organization/test_unit_organization_history_api_v2.py @@ -3,7 +3,7 @@ from django.test import TestCase from core.tests.abstract.test_unit_model_history_api_v2 import PrimaryModelHistoryAPI -from access.models.organization_history import Organization, OrganizationHistory +from access.models.organization_history import Tenant as Organization, OrganizationHistory diff --git a/app/access/tests/unit/role/test_unit_role_api_v2.py b/app/access/tests/unit/role/test_unit_role_api_v2.py index 5faaeee0..42096a2f 100644 --- a/app/access/tests/unit/role/test_unit_role_api_v2.py +++ b/app/access/tests/unit/role/test_unit_role_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase # from rest_framework.relations import Hyperlink from access.models.role import Role -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/team/test_team_api.py b/app/access/tests/unit/team/test_team_api.py index 01ccab6b..5507e452 100644 --- a/app/access/tests/unit/team/test_team_api.py +++ b/app/access/tests/unit/team/test_team_api.py @@ -12,7 +12,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/team/test_team_api_v2.py b/app/access/tests/unit/team/test_team_api_v2.py index e57290f2..0ac6e9d8 100644 --- a/app/access/tests/unit/team/test_team_api_v2.py +++ b/app/access/tests/unit/team/test_team_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/team/test_team_permission.py b/app/access/tests/unit/team/test_team_permission.py index d1dfe840..f2f84c12 100644 --- a/app/access/tests/unit/team/test_team_permission.py +++ b/app/access/tests/unit/team/test_team_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers from access.tests.abstract.model_permissions_organization_manager import OrganizationManagerModelPermissions diff --git a/app/access/tests/unit/team/test_team_permission_api.py b/app/access/tests/unit/team/test_team_permission_api.py index 17d32d8e..dc7b205e 100644 --- a/app/access/tests/unit/team/test_team_permission_api.py +++ b/app/access/tests/unit/team/test_team_permission_api.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/team_user/test_team_user_api_v2.py b/app/access/tests/unit/team_user/test_team_user_api_v2.py index 20fc8f57..8d0d0fa8 100644 --- a/app/access/tests/unit/team_user/test_team_user_api_v2.py +++ b/app/access/tests/unit/team_user/test_team_user_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/team_user/test_team_user_functions.py b/app/access/tests/unit/team_user/test_team_user_functions.py index 8f40edab..7ff3064f 100644 --- a/app/access/tests/unit/team_user/test_team_user_functions.py +++ b/app/access/tests/unit/team_user/test_team_user_functions.py @@ -7,7 +7,7 @@ import unittest from django.contrib.auth import get_user_model from django.core.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team diff --git a/app/access/tests/unit/team_user/test_team_user_permission.py b/app/access/tests/unit/team_user/test_team_user_permission.py index 7478722b..c80af376 100644 --- a/app/access/tests/unit/team_user/test_team_user_permission.py +++ b/app/access/tests/unit/team_user/test_team_user_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/team_user/test_unit_team_user_model.py b/app/access/tests/unit/team_user/test_unit_team_user_model.py index 4ea8011a..213e0bf7 100644 --- a/app/access/tests/unit/team_user/test_unit_team_user_model.py +++ b/app/access/tests/unit/team_user/test_unit_team_user_model.py @@ -1,7 +1,7 @@ import django from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/tests/unit/tenancy_object/test_unit_tenancy_object_model.py b/app/access/tests/unit/tenancy_object/test_unit_tenancy_object_model.py index 86c062ff..ad83a17e 100644 --- a/app/access/tests/unit/tenancy_object/test_unit_tenancy_object_model.py +++ b/app/access/tests/unit/tenancy_object/test_unit_tenancy_object_model.py @@ -7,7 +7,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.test import TestCase from django.urls.exceptions import NoReverseMatch -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.tenancy import TenancyManager from access.models.tenancy import ( TenancyObject, diff --git a/app/access/views/organization.py b/app/access/views/organization.py index c17cec12..b19b2129 100644 --- a/app/access/views/organization.py +++ b/app/access/views/organization.py @@ -4,7 +4,7 @@ from django.utils.decorators import method_decorator from django.views import generic from access.mixin import * -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.forms.organization import OrganizationForm @@ -15,7 +15,7 @@ class IndexView(IndexView): model = Organization permission_required = [ - 'access.view_organization' + 'access.view_tenant' ] template_name = 'access/index.html.j2' context_object_name = "organization_list" @@ -61,7 +61,7 @@ class View(ChangeView): return self.handle_no_permission() - if not self.permission_check(request, [ 'access.view_organization' ]): + if not self.permission_check(request, [ 'access.view_tenant' ]): raise PermissionDenied('You are not part of this organization') @@ -97,7 +97,7 @@ class View(ChangeView): return self.handle_no_permission() - if not self.permission_check(request, [ 'access.change_organization' ]): + if not self.permission_check(request, [ 'access.change_tenant' ]): raise PermissionDenied('You are not part of this organization') diff --git a/app/access/views/team.py b/app/access/views/team.py index 234c19df..f8914ba7 100644 --- a/app/access/views/team.py +++ b/app/access/views/team.py @@ -5,7 +5,7 @@ from django.urls import reverse from access.forms.team import TeamForm, TeamFormAdd from access.mixin import * -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/access/viewsets/organization.py b/app/access/viewsets/organization.py index ffd14105..b74a4286 100644 --- a/app/access/viewsets/organization.py +++ b/app/access/viewsets/organization.py @@ -3,9 +3,9 @@ from drf_spectacular.utils import extend_schema, extend_schema_view, OpenApiResp # THis import only exists so that the migrations can be created from access.models.organization_history import OrganizationHistory # pylint: disable=W0611:unused-import from access.serializers.organization import ( - Organization, - OrganizationModelSerializer, - OrganizationViewSerializer + Tenant, + TenantModelSerializer, + TenantViewSerializer ) from api.viewsets.common import ModelViewSet @@ -19,7 +19,7 @@ from api.viewsets.common import ModelViewSet description='', responses = { # 200: OpenApiResponse(description='Allready exists', response=OrganizationViewSerializer), - 201: OpenApiResponse(description='Created', response=OrganizationViewSerializer), + 201: OpenApiResponse(description='Created', response=TenantViewSerializer), # 400: OpenApiResponse(description='Validation failed.'), 403: OpenApiResponse(description='User is missing add permissions'), } @@ -36,7 +36,7 @@ from api.viewsets.common import ModelViewSet summary = 'Fetch all orgnaizations', description='', responses = { - 200: OpenApiResponse(description='', response=OrganizationViewSerializer), + 200: OpenApiResponse(description='', response=TenantViewSerializer), 403: OpenApiResponse(description='User is missing view permissions'), } ), @@ -44,7 +44,7 @@ from api.viewsets.common import ModelViewSet summary = 'Fetch a single orgnaization', description='', responses = { - 200: OpenApiResponse(description='', response=OrganizationViewSerializer), + 200: OpenApiResponse(description='', response=TenantViewSerializer), 403: OpenApiResponse(description='User is missing view permissions'), } ), @@ -53,7 +53,7 @@ from api.viewsets.common import ModelViewSet summary = 'Update an orgnaization', description = '', responses = { - 200: OpenApiResponse(description='', response=OrganizationViewSerializer), + 200: OpenApiResponse(description='', response=TenantViewSerializer), # 201: OpenApiResponse(description='Created', response=OrganizationViewSerializer), # # 400: OpenApiResponse(description='Validation failed.'), 403: OpenApiResponse(description='User is missing change permissions'), @@ -71,9 +71,9 @@ class ViewSet( ModelViewSet ): 'name', ] - model = Organization + model = Tenant - view_description = 'Centurion Organizations' + view_description = 'Centurion Tenants' def get_serializer_class(self): diff --git a/app/access/viewsets/team.py b/app/access/viewsets/team.py index ce0e7096..07b42b56 100644 --- a/app/access/viewsets/team.py +++ b/app/access/viewsets/team.py @@ -1,6 +1,6 @@ from drf_spectacular.utils import extend_schema, extend_schema_view, OpenApiParameter, OpenApiResponse -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization # THis import only exists so that the migrations can be created from access.models.team_history import TeamHistory # pylint: disable=W0611:unused-import from access.serializers.teams import ( diff --git a/app/accounting/migrations/0004_alter_assetbase_organization.py b/app/accounting/migrations/0004_alter_assetbase_organization.py new file mode 100644 index 00000000..9c9154bd --- /dev/null +++ b/app/accounting/migrations/0004_alter_assetbase_organization.py @@ -0,0 +1,21 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('accounting', '0003_assetbasenotes'), + ] + + operations = [ + migrations.AlterField( + model_name='assetbase', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + ] diff --git a/app/accounting/serializers/asset.py b/app/accounting/serializers/asset.py index 96b6c9e9..2261c17e 100644 --- a/app/accounting/serializers/asset.py +++ b/app/accounting/serializers/asset.py @@ -2,7 +2,7 @@ from rest_framework import serializers from drf_spectacular.utils import extend_schema_serializer -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from accounting.models.asset_base import AssetBase @@ -105,4 +105,4 @@ class ModelSerializer( class ViewSerializer(ModelSerializer): """Ticket Base View Model""" - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/accounting/tests/functional/asset_base/test_functional_asset_base_metadata.py b/app/accounting/tests/functional/asset_base/test_functional_asset_base_metadata.py index 9eab4637..d6410fae 100644 --- a/app/accounting/tests/functional/asset_base/test_functional_asset_base_metadata.py +++ b/app/accounting/tests/functional/asset_base/test_functional_asset_base_metadata.py @@ -3,7 +3,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/accounting/tests/functional/asset_base/test_functional_asset_base_viewset.py b/app/accounting/tests/functional/asset_base/test_functional_asset_base_viewset.py index 496b88b8..bc4697c3 100644 --- a/app/accounting/tests/functional/asset_base/test_functional_asset_base_viewset.py +++ b/app/accounting/tests/functional/asset_base/test_functional_asset_base_viewset.py @@ -3,7 +3,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/api/react_ui_metadata.py b/app/api/react_ui_metadata.py index 8ae20682..02008bad 100644 --- a/app/api/react_ui_metadata.py +++ b/app/api/react_ui_metadata.py @@ -13,7 +13,7 @@ from rest_framework.utils.field_mapping import ClassLookupDict from rest_framework_json_api.utils import get_related_resource_type -from access.models.organization import Organization +from access.models.tenant import Tenant from app.serializers.user import User, UserBaseSerializer @@ -392,9 +392,10 @@ class ReactUIMetadata(OverRideJSONAPIMetadata): "display_name": "Access", "name": "access", "pages": { - 'view_organization': { - "display_name": "Organization", - "name": "organization", + 'view_tenant': { + "display_name": "Tenancy", + "name": "tenant", + "icon": "organization", "link": "/access/organization" }, } @@ -705,7 +706,7 @@ class ReactUIMetadata(OverRideJSONAPIMetadata): # user = view.request.user - user_orgainzations = Organization.objects.filter( + user_orgainzations = Tenant.objects.filter( manager = request.user ) diff --git a/app/api/serializers/access.py b/app/api/serializers/access.py index e53d6ba6..e2986a5f 100644 --- a/app/api/serializers/access.py +++ b/app/api/serializers/access.py @@ -1,7 +1,7 @@ from rest_framework import serializers, request from rest_framework.reverse import reverse -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from django.contrib.auth.models import Permission diff --git a/app/api/serializers/auth_token.py b/app/api/serializers/auth_token.py index 84a7b347..3ec3b9c4 100644 --- a/app/api/serializers/auth_token.py +++ b/app/api/serializers/auth_token.py @@ -3,7 +3,7 @@ import re from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.models.tokens import AuthToken from api.serializers import common @@ -132,4 +132,4 @@ class AuthTokenModelSerializer( class AuthTokenViewSerializer(AuthTokenModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/api/serializers/common.py b/app/api/serializers/common.py index c882dd05..0cbb83f6 100644 --- a/app/api/serializers/common.py +++ b/app/api/serializers/common.py @@ -2,7 +2,7 @@ from rest_framework import serializers from rest_framework.reverse import reverse -from access.serializers.organization import Organization +from access.serializers.organization import Tenant from assistance.models.model_knowledge_base_article import all_models @@ -20,7 +20,7 @@ class OrganizationField(serializers.PrimaryKeyRelatedField): if defined. """ - queryset = Organization.objects.all() + queryset = Tenant.objects.all() if self.context.get('request', None): diff --git a/app/api/tests/functional/auth_token/test_functional_auth_token_serializer.py b/app/api/tests/functional/auth_token/test_functional_auth_token_serializer.py index df9dc02b..1ad1ea62 100644 --- a/app/api/tests/functional/auth_token/test_functional_auth_token_serializer.py +++ b/app/api/tests/functional/auth_token/test_functional_auth_token_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError, PermissionDenied -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from api.serializers.auth_token import AuthToken, AuthTokenModelSerializer diff --git a/app/api/tests/functional/auth_token/test_functional_auth_token_viewset.py b/app/api/tests/functional/auth_token/test_functional_auth_token_viewset.py index 6bfa4267..297119bb 100644 --- a/app/api/tests/functional/auth_token/test_functional_auth_token_viewset.py +++ b/app/api/tests/functional/auth_token/test_functional_auth_token_viewset.py @@ -4,7 +4,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/api/tests/unit/test_index_viewset.py b/app/api/tests/unit/test_index_viewset.py index 08de51ac..c4e0f56c 100644 --- a/app/api/tests/unit/test_index_viewset.py +++ b/app/api/tests/unit/test_index_viewset.py @@ -2,7 +2,7 @@ import django from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from api.tests.unit.test_unit_common_viewset import IndexViewsetInheritedCases diff --git a/app/api/tests/unit/test_navigation_menu.py b/app/api/tests/unit/test_navigation_menu.py index 97816578..c3f67b7d 100644 --- a/app/api/tests/unit/test_navigation_menu.py +++ b/app/api/tests/unit/test_navigation_menu.py @@ -3,7 +3,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers @@ -36,8 +36,8 @@ class NavigationMenu( users_to_create: dict = { 'access': [ { - 'content_model': 'organization', - 'permission_model': 'organization' + 'content_model': 'tenant', + 'permission_model': 'tenant' } ], 'assistance': [ @@ -189,18 +189,18 @@ class NavigationMenu( - def test_navigation_menu_visible_access_organization_exist(self): + def test_navigation_menu_visible_access_tenant_exist(self): """Navigation Menu Check Ensure that if the user has the permission, the navigation menu and page is available for the user """ - nav_menu = self.metadata.get_navigation(self.access_organization) + nav_menu = self.metadata.get_navigation(self.access_tenant) menu_name = 'access' - page_name = 'organization' + page_name = 'tenant' menu_page_exists: bool = False @@ -221,14 +221,14 @@ class NavigationMenu( - def test_navigation_menu_visible_access_organization_no_additional_exist(self): + def test_navigation_menu_visible_access_tenant_no_additional_exist(self): """Navigation Menu Check Ensure that only the navigation menu and entry is the only one displayed for the user who has the desired permission """ - nav_menu = self.metadata.get_navigation(self.access_organization) + nav_menu = self.metadata.get_navigation(self.access_tenant) pages_found: int = 0 diff --git a/app/api/tests/unit/test_unit_common_viewset.py b/app/api/tests/unit/test_unit_common_viewset.py index addb2429..d3f2a4d0 100644 --- a/app/api/tests/unit/test_unit_common_viewset.py +++ b/app/api/tests/unit/test_unit_common_viewset.py @@ -17,7 +17,7 @@ from rest_framework_json_api.metadata import JSONAPIMetadata from access.middleware.request import Tenancy from access.mixins.organization import OrganizationMixin from access.mixins.permissions import OrganizationPermissionMixin -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/api/tests/unit/token/test_token.py b/app/api/tests/unit/token/test_token.py index 0d8d9212..1b6b8a42 100644 --- a/app/api/tests/unit/token/test_token.py +++ b/app/api/tests/unit/token/test_token.py @@ -7,7 +7,7 @@ from datetime import datetime, timedelta from django.shortcuts import reverse from django.test import TestCase, Client -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from api.models.tokens import AuthToken diff --git a/app/api/tests/unit/token/test_unit_auth_token_api_v2.py b/app/api/tests/unit/token/test_unit_auth_token_api_v2.py index a19be6be..762a118f 100644 --- a/app/api/tests/unit/token/test_unit_auth_token_api_v2.py +++ b/app/api/tests/unit/token/test_unit_auth_token_api_v2.py @@ -7,7 +7,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/api/views/access.py b/app/api/views/access.py index 69398194..dd6159bd 100644 --- a/app/api/views/access.py +++ b/app/api/views/access.py @@ -7,7 +7,7 @@ from rest_framework.permissions import DjangoObjectPermissions from rest_framework.response import Response from access.mixin import OrganizationMixin -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from api.serializers.access import OrganizationSerializer, OrganizationListSerializer, TeamSerializer, TeamPermissionSerializer diff --git a/app/api/views/mixin.py b/app/api/views/mixin.py index c1ab247f..1f84c300 100644 --- a/app/api/views/mixin.py +++ b/app/api/views/mixin.py @@ -182,7 +182,7 @@ class OrganizationPermissionAPI(DjangoObjectPermissions, OrganizationMixin): if 'pk' in view.kwargs: - if object_organization is None and view.queryset.model._meta.model_name == 'organization' and view.kwargs['pk']: + if object_organization is None and view.queryset.model._meta.model_name == 'tenant' and view.kwargs['pk']: object_organization = view.kwargs['pk'] diff --git a/app/app/context_processors/base.py b/app/app/context_processors/base.py index 29364926..e03da901 100644 --- a/app/app/context_processors/base.py +++ b/app/app/context_processors/base.py @@ -5,7 +5,7 @@ from app.urls import urlpatterns from django.conf import settings from django.urls import URLPattern, URLResolver -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from settings.models.user_settings import UserSettings diff --git a/app/app/tests/abstract/mock_view.py b/app/app/tests/abstract/mock_view.py index 77f8880c..57444e92 100644 --- a/app/app/tests/abstract/mock_view.py +++ b/app/app/tests/abstract/mock_view.py @@ -2,7 +2,7 @@ import django from access.middleware.request import Tenancy -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from settings.models.app_settings import AppSettings diff --git a/app/app/tests/unit/test_unit_models.py b/app/app/tests/unit/test_unit_models.py index 22567fa7..8233438a 100644 --- a/app/app/tests/unit/test_unit_models.py +++ b/app/app/tests/unit/test_unit_models.py @@ -4,7 +4,7 @@ from django.db.models import fields from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.tests.unit.tenancy_object.test_unit_tenancy_object_model import ( TenancyObjectInheritedCases as AccessTenancyObjectInheritedCases ) diff --git a/app/assistance/migrations/0006_alter_knowledgebase_organization_and_more.py b/app/assistance/migrations/0006_alter_knowledgebase_organization_and_more.py new file mode 100644 index 00000000..7c35348d --- /dev/null +++ b/app/assistance/migrations/0006_alter_knowledgebase_organization_and_more.py @@ -0,0 +1,31 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('assistance', '0005_knowledgebasecategoryhistory_knowledgebasehistory'), + ] + + operations = [ + migrations.AlterField( + model_name='knowledgebase', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='knowledgebasecategory', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='modelknowledgebasearticle', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + ] diff --git a/app/assistance/serializers/knowledge_base.py b/app/assistance/serializers/knowledge_base.py index 0e7a41f3..97f2bfd8 100644 --- a/app/assistance/serializers/knowledge_base.py +++ b/app/assistance/serializers/knowledge_base.py @@ -3,7 +3,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers from rest_framework.exceptions import ValidationError -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from access.serializers.teams import TeamBaseSerializer from app.serializers.user import UserBaseSerializer @@ -187,7 +187,7 @@ class KnowledgeBaseViewSerializer(KnowledgeBaseModelSerializer): category = KnowledgeBaseCategoryBaseSerializer( read_only = True ) - organization = OrganizationBaseSerializer( many=False, read_only=True ) + organization = TenantBaseSerializer( many=False, read_only=True ) responsible_teams = TeamBaseSerializer( read_only = True, many = True) diff --git a/app/assistance/serializers/knowledge_base_category.py b/app/assistance/serializers/knowledge_base_category.py index 23860f1e..0e472c4f 100644 --- a/app/assistance/serializers/knowledge_base_category.py +++ b/app/assistance/serializers/knowledge_base_category.py @@ -4,7 +4,7 @@ from rest_framework import serializers from rest_framework.exceptions import ParseError, ValidationError -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from access.serializers.teams import TeamBaseSerializer from app.serializers.user import UserBaseSerializer @@ -182,7 +182,7 @@ class KnowledgeBaseCategoryModelSerializer( class KnowledgeBaseCategoryViewSerializer(KnowledgeBaseCategoryModelSerializer): - organization = OrganizationBaseSerializer( many=False, read_only=True )\ + organization = TenantBaseSerializer( many=False, read_only=True )\ parent_category = KnowledgeBaseCategoryBaseSerializer( many = False, read_only = True) diff --git a/app/assistance/serializers/model_knowledge_base_article.py b/app/assistance/serializers/model_knowledge_base_article.py index ad88c18c..75b6ec35 100644 --- a/app/assistance/serializers/model_knowledge_base_article.py +++ b/app/assistance/serializers/model_knowledge_base_article.py @@ -3,7 +3,7 @@ from django.apps import apps from rest_framework import serializers from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -142,4 +142,4 @@ class ModelKnowledgeBaseArticleViewSerializer(ModelKnowledgeBaseArticleModelSeri category = KnowledgeBaseCategoryBaseSerializer(source = 'article.category', read_only = True ) - organization = OrganizationBaseSerializer( many=False, read_only=True ) + organization = TenantBaseSerializer( many=False, read_only=True ) diff --git a/app/assistance/tests/functional/knowledge_base/test_knowledge_base_serializer.py b/app/assistance/tests/functional/knowledge_base/test_knowledge_base_serializer.py index 8d97cbec..b3efb957 100644 --- a/app/assistance/tests/functional/knowledge_base/test_knowledge_base_serializer.py +++ b/app/assistance/tests/functional/knowledge_base/test_knowledge_base_serializer.py @@ -6,7 +6,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from app.tests.abstract.mock_view import MockView diff --git a/app/assistance/tests/functional/knowledge_base/test_knowledge_base_viewset.py b/app/assistance/tests/functional/knowledge_base/test_knowledge_base_viewset.py index 202fab61..4d8dfe43 100644 --- a/app/assistance/tests/functional/knowledge_base/test_knowledge_base_viewset.py +++ b/app/assistance/tests/functional/knowledge_base/test_knowledge_base_viewset.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/assistance/tests/functional/knowledge_base_category/test_knowledge_base_category_serializer.py b/app/assistance/tests/functional/knowledge_base_category/test_knowledge_base_category_serializer.py index c21d6b4c..e926e36d 100644 --- a/app/assistance/tests/functional/knowledge_base_category/test_knowledge_base_category_serializer.py +++ b/app/assistance/tests/functional/knowledge_base_category/test_knowledge_base_category_serializer.py @@ -6,7 +6,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from app.tests.abstract.mock_view import MockView diff --git a/app/assistance/tests/functional/knowledge_base_category/test_knowledge_base_category_viewset.py b/app/assistance/tests/functional/knowledge_base_category/test_knowledge_base_category_viewset.py index b1b1869f..0443563e 100644 --- a/app/assistance/tests/functional/knowledge_base_category/test_knowledge_base_category_viewset.py +++ b/app/assistance/tests/functional/knowledge_base_category/test_knowledge_base_category_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/assistance/tests/functional/model_knowledge_base_article/test_model_knowledge_base_article_serializer.py b/app/assistance/tests/functional/model_knowledge_base_article/test_model_knowledge_base_article_serializer.py index d653a9c0..79715bc7 100644 --- a/app/assistance/tests/functional/model_knowledge_base_article/test_model_knowledge_base_article_serializer.py +++ b/app/assistance/tests/functional/model_knowledge_base_article/test_model_knowledge_base_article_serializer.py @@ -6,7 +6,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from assistance.models.model_knowledge_base_article import KnowledgeBase, ModelKnowledgeBaseArticle diff --git a/app/assistance/tests/functional/model_knowledge_base_article/test_model_knowledge_base_article_viewset.py b/app/assistance/tests/functional/model_knowledge_base_article/test_model_knowledge_base_article_viewset.py index 682c82f2..28395513 100644 --- a/app/assistance/tests/functional/model_knowledge_base_article/test_model_knowledge_base_article_viewset.py +++ b/app/assistance/tests/functional/model_knowledge_base_article/test_model_knowledge_base_article_viewset.py @@ -11,7 +11,7 @@ from django.test import Client, TestCase from rest_framework.reverse import reverse -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/assistance/tests/unit/knowledge_base/test_knowledge_base_api_v2.py b/app/assistance/tests/unit/knowledge_base/test_knowledge_base_api_v2.py index b195c786..f4b8abc3 100644 --- a/app/assistance/tests/unit/knowledge_base/test_knowledge_base_api_v2.py +++ b/app/assistance/tests/unit/knowledge_base/test_knowledge_base_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/assistance/tests/unit/knowledge_base/test_knowledge_base_permission.py b/app/assistance/tests/unit/knowledge_base/test_knowledge_base_permission.py index 310ad732..0c23d0f1 100644 --- a/app/assistance/tests/unit/knowledge_base/test_knowledge_base_permission.py +++ b/app/assistance/tests/unit/knowledge_base/test_knowledge_base_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/assistance/tests/unit/knowledge_base_category/test_knowledge_base_category_api_v2.py b/app/assistance/tests/unit/knowledge_base_category/test_knowledge_base_category_api_v2.py index 86de81ee..b22e7f4c 100644 --- a/app/assistance/tests/unit/knowledge_base_category/test_knowledge_base_category_api_v2.py +++ b/app/assistance/tests/unit/knowledge_base_category/test_knowledge_base_category_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/assistance/tests/unit/knowledge_base_category/test_knowledge_base_category_permission.py b/app/assistance/tests/unit/knowledge_base_category/test_knowledge_base_category_permission.py index 4b8e6e30..6f21dc0e 100644 --- a/app/assistance/tests/unit/knowledge_base_category/test_knowledge_base_category_permission.py +++ b/app/assistance/tests/unit/knowledge_base_category/test_knowledge_base_category_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/assistance/tests/unit/model_knowledge_base_article/test_model_knowledge_base_article_api_v2.py b/app/assistance/tests/unit/model_knowledge_base_article/test_model_knowledge_base_article_api_v2.py index 6eab5b65..f9c9b9b7 100644 --- a/app/assistance/tests/unit/model_knowledge_base_article/test_model_knowledge_base_article_api_v2.py +++ b/app/assistance/tests/unit/model_knowledge_base_article/test_model_knowledge_base_article_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/assistance/tests/unit/model_knowledge_base_article/test_unit_model_knowledge_base_article_model.py b/app/assistance/tests/unit/model_knowledge_base_article/test_unit_model_knowledge_base_article_model.py index bf1fec70..f2af3b79 100644 --- a/app/assistance/tests/unit/model_knowledge_base_article/test_unit_model_knowledge_base_article_model.py +++ b/app/assistance/tests/unit/model_knowledge_base_article/test_unit_model_knowledge_base_article_model.py @@ -3,7 +3,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/config_management/migrations/0008_alter_configgrouphosts_organization_and_more.py b/app/config_management/migrations/0008_alter_configgrouphosts_organization_and_more.py new file mode 100644 index 00000000..9d1f9505 --- /dev/null +++ b/app/config_management/migrations/0008_alter_configgrouphosts_organization_and_more.py @@ -0,0 +1,31 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('config_management', '0007_configgroupshistory_configgrouphostshistory_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='configgrouphosts', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='configgroups', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='configgroupsoftware', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + ] diff --git a/app/config_management/serializers/config_group.py b/app/config_management/serializers/config_group.py index 0cafdb52..9f8c8712 100644 --- a/app/config_management/serializers/config_group.py +++ b/app/config_management/serializers/config_group.py @@ -2,7 +2,7 @@ from rest_framework import serializers from rest_framework.fields import empty from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -200,4 +200,4 @@ class ConfigGroupViewSerializer(ConfigGroupModelSerializer): parent = ConfigGroupBaseSerializer( read_only = True ) - organization = OrganizationBaseSerializer( many=False, read_only=True ) + organization = TenantBaseSerializer( many=False, read_only=True ) diff --git a/app/config_management/serializers/config_group_software.py b/app/config_management/serializers/config_group_software.py index 0a81e74c..9cd991a5 100644 --- a/app/config_management/serializers/config_group_software.py +++ b/app/config_management/serializers/config_group_software.py @@ -2,7 +2,7 @@ from rest_framework import serializers from rest_framework.fields import empty from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -210,7 +210,7 @@ class ConfigGroupSoftwareViewSerializer(ConfigGroupSoftwareModelSerializer): config_group = ConfigGroupBaseSerializer(read_only = True ) - organization = OrganizationBaseSerializer( many=False, read_only=True ) + organization = TenantBaseSerializer( many=False, read_only=True ) software = SoftwareBaseSerializer( read_only = True ) diff --git a/app/config_management/tests/functional/config_groups/test_config_groups_serializer.py b/app/config_management/tests/functional/config_groups/test_config_groups_serializer.py index 083ce9b3..5c6fa021 100644 --- a/app/config_management/tests/functional/config_groups/test_config_groups_serializer.py +++ b/app/config_management/tests/functional/config_groups/test_config_groups_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/config_management/tests/functional/config_groups/test_config_groups_viewset.py b/app/config_management/tests/functional/config_groups/test_config_groups_viewset.py index 548bf5bc..4cc87b0a 100644 --- a/app/config_management/tests/functional/config_groups/test_config_groups_viewset.py +++ b/app/config_management/tests/functional/config_groups/test_config_groups_viewset.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/config_management/tests/functional/config_groups_software/test_config_groups_software_serializer.py b/app/config_management/tests/functional/config_groups_software/test_config_groups_software_serializer.py index 665f3558..8d356bfe 100644 --- a/app/config_management/tests/functional/config_groups_software/test_config_groups_software_serializer.py +++ b/app/config_management/tests/functional/config_groups_software/test_config_groups_software_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from config_management.serializers.config_group_software import ConfigGroupSoftware, ConfigGroupSoftwareModelSerializer from config_management.models.groups import ConfigGroups diff --git a/app/config_management/tests/functional/config_groups_software/test_config_groups_software_viewset.py b/app/config_management/tests/functional/config_groups_software/test_config_groups_software_viewset.py index 0294931d..994d47a9 100644 --- a/app/config_management/tests/functional/config_groups_software/test_config_groups_software_viewset.py +++ b/app/config_management/tests/functional/config_groups_software/test_config_groups_software_viewset.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/config_management/tests/unit/config_groups/test_config_groups_api.py b/app/config_management/tests/unit/config_groups/test_config_groups_api.py index 4036cdf0..47e1ae06 100644 --- a/app/config_management/tests/unit/config_groups/test_config_groups_api.py +++ b/app/config_management/tests/unit/config_groups/test_config_groups_api.py @@ -7,7 +7,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/config_management/tests/unit/config_groups/test_config_groups_api_v2.py b/app/config_management/tests/unit/config_groups/test_config_groups_api_v2.py index de629ccd..ff9ca2e9 100644 --- a/app/config_management/tests/unit/config_groups/test_config_groups_api_v2.py +++ b/app/config_management/tests/unit/config_groups/test_config_groups_api_v2.py @@ -7,7 +7,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/config_management/tests/unit/config_groups/test_config_groups_permission.py b/app/config_management/tests/unit/config_groups/test_config_groups_permission.py index b46645b7..e3766c06 100644 --- a/app/config_management/tests/unit/config_groups/test_config_groups_permission.py +++ b/app/config_management/tests/unit/config_groups/test_config_groups_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/config_management/tests/unit/config_groups/test_unit_config_groups_model.py b/app/config_management/tests/unit/config_groups/test_unit_config_groups_model.py index 9de6403e..e6f4ade7 100644 --- a/app/config_management/tests/unit/config_groups/test_unit_config_groups_model.py +++ b/app/config_management/tests/unit/config_groups/test_unit_config_groups_model.py @@ -2,7 +2,7 @@ import pytest from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/config_management/tests/unit/config_groups_software/test_config_groups_software_api_v2.py b/app/config_management/tests/unit/config_groups_software/test_config_groups_software_api_v2.py index 7ccec211..9cc59485 100644 --- a/app/config_management/tests/unit/config_groups_software/test_config_groups_software_api_v2.py +++ b/app/config_management/tests/unit/config_groups_software/test_config_groups_software_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/config_management/tests/unit/config_groups_software/test_config_groups_software_permission.py b/app/config_management/tests/unit/config_groups_software/test_config_groups_software_permission.py index 33dca38b..d25a25a0 100644 --- a/app/config_management/tests/unit/config_groups_software/test_config_groups_software_permission.py +++ b/app/config_management/tests/unit/config_groups_software/test_config_groups_software_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/config_management/tests/unit/config_groups_software/test_unit_config_groups_software_model.py b/app/config_management/tests/unit/config_groups_software/test_unit_config_groups_software_model.py index 8dd5df4d..2509e6ff 100644 --- a/app/config_management/tests/unit/config_groups_software/test_unit_config_groups_software_model.py +++ b/app/config_management/tests/unit/config_groups_software/test_unit_config_groups_software_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/conftest.py b/app/conftest.py index 594a0513..13a5681a 100644 --- a/app/conftest.py +++ b/app/conftest.py @@ -6,7 +6,7 @@ from django.test import ( TestCase ) -from access.models.organization import Organization +from access.models.tenant import Tenant @@ -488,7 +488,7 @@ def organization_one(django_db_blocker): random_str = datetime.datetime.now(tz=datetime.timezone.utc) - item = Organization.objects.create( + item = Tenant.objects.create( name = 'org one from global' + str(random_str) ) @@ -509,7 +509,7 @@ def organization_two(django_db_blocker): random_str = datetime.datetime.now(tz=datetime.timezone.utc) - item = Organization.objects.create( + item = Tenant.objects.create( name = 'org two from global' + str(random_str) ) diff --git a/app/core/forms/common.py b/app/core/forms/common.py index 3e753284..cc2e02f4 100644 --- a/app/core/forms/common.py +++ b/app/core/forms/common.py @@ -1,7 +1,7 @@ from django import forms from django.db.models import Q -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team_user import TeamUsers diff --git a/app/core/lib/slash_commands/linked_model.py b/app/core/lib/slash_commands/linked_model.py index 665be491..ccf01e3f 100644 --- a/app/core/lib/slash_commands/linked_model.py +++ b/app/core/lib/slash_commands/linked_model.py @@ -209,11 +209,11 @@ For this command to process the following conditions must be met: item_type = TicketLinkedItem.Modules.OPERATING_SYSTEM - elif model_type == 'organization': + elif model_type == 'tenant': - from access.models.organization import Organization + from access.models.tenant import Tenant - model = Organization + model = Tenant item_type = TicketLinkedItem.Modules.ORGANIZATION diff --git a/app/core/migrations/0016_data_move_history_to_new_table.py b/app/core/migrations/0016_data_move_history_to_new_table.py index c97b2a5b..d957acae 100644 --- a/app/core/migrations/0016_data_move_history_to_new_table.py +++ b/app/core/migrations/0016_data_move_history_to_new_table.py @@ -6,7 +6,7 @@ from django.conf import settings from django.contrib.auth.models import ContentType from django.db import migrations, models -from access.models.organization_history import Organization, OrganizationHistory +from access.models.organization_history import Tenant, OrganizationHistory from access.models.team_history import Team, TeamHistory from assistance.models.knowledge_base_history import KnowledgeBase, KnowledgeBaseHistory @@ -334,7 +334,7 @@ def model_details(item_pk, item_class) -> dict: case 'organization': - model_class = Organization + model_class = Tenant history_class = OrganizationHistory diff --git a/app/core/migrations/0026_alter_manufacturer_organization_and_more.py b/app/core/migrations/0026_alter_manufacturer_organization_and_more.py new file mode 100644 index 00000000..d808a7e2 --- /dev/null +++ b/app/core/migrations/0026_alter_manufacturer_organization_and_more.py @@ -0,0 +1,76 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('core', '0025_ticketcommentaction'), + ] + + operations = [ + migrations.AlterField( + model_name='manufacturer', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='modelhistory', + name='organization', + field=models.ForeignKey(help_text='Tenant this belongs to', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='modelnotes', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='notes', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='relatedtickets', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='ticket', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='ticketbase', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='ticketcategory', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='ticketcomment', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='ticketcommentbase', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='ticketcommentcategory', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='ticketlinkeditem', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + ] diff --git a/app/core/mixin/history_save.py b/app/core/mixin/history_save.py index 3e46cb5d..6429cf42 100644 --- a/app/core/mixin/history_save.py +++ b/app/core/mixin/history_save.py @@ -158,7 +158,7 @@ class SaveHistory(models.Model): organization = getattr(self, 'organization', None) - if self._meta.model_name == 'organization': + if self._meta.model_name == 'tenant': organization = self diff --git a/app/core/models/model_history.py b/app/core/models/model_history.py index 4367b204..d5f5cf28 100644 --- a/app/core/models/model_history.py +++ b/app/core/models/model_history.py @@ -7,7 +7,7 @@ from django.db import models from rest_framework.reverse import reverse from access.fields import AutoCreatedField -from access.models.organization import Organization +from access.models.tenant import Tenant from access.models.tenancy import TenancyObject from core.lib.feature_not_used import FeatureNotUsed @@ -72,13 +72,13 @@ class ModelHistory( ) organization = models.ForeignKey( - Organization, + Tenant, blank = False, - help_text = 'Organization this belongs to', + help_text = 'Tenant this belongs to', null = True, on_delete = models.CASCADE, related_name = '+', - verbose_name = 'Organization' + verbose_name = 'Tenant' ) user = models.ForeignKey( diff --git a/app/core/models/ticket/ticket_linked_items.py b/app/core/models/ticket/ticket_linked_items.py index 049acbee..5b11e9fe 100644 --- a/app/core/models/ticket/ticket_linked_items.py +++ b/app/core/models/ticket/ticket_linked_items.py @@ -45,7 +45,7 @@ class TicketLinkedItem(TenancyObject): SOFTWARE = 6, 'Software' KB = 7, 'Knowledge Base' - ORGANIZATION = 8, 'Organization' + TENANT = 8, 'Tenant' TEAM = 9, 'Team' FEATURE_FLAG = 10, 'Feature Flag' SOFTWARE_VERSION = 11, 'Software Version' @@ -152,9 +152,9 @@ class TicketLinkedItem(TenancyObject): item_type = 'operating_system' - elif self.item_type == TicketLinkedItem.Modules.ORGANIZATION: + elif self.item_type == TicketLinkedItem.Modules.TENANT: - item_type = 'organization' + item_type = 'tenant' elif self.item_type == TicketLinkedItem.Modules.SERVICE: diff --git a/app/core/serializers/celery_log.py b/app/core/serializers/celery_log.py index 0da0205a..3b3e3b96 100644 --- a/app/core/serializers/celery_log.py +++ b/app/core/serializers/celery_log.py @@ -5,7 +5,7 @@ from rest_framework import serializers from django_celery_results.models import TaskResult -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from app.serializers.user import UserBaseSerializer diff --git a/app/core/serializers/history.py b/app/core/serializers/history.py index 72db0db1..14337b07 100644 --- a/app/core/serializers/history.py +++ b/app/core/serializers/history.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from app.serializers.user import UserBaseSerializer @@ -138,6 +138,6 @@ class HistoryModelSerializer(HistoryBaseSerializer): class HistoryViewSerializer(HistoryModelSerializer): - organization = OrganizationBaseSerializer( read_only = True ) + organization = TenantBaseSerializer( read_only = True ) user = UserBaseSerializer( read_only = True ) diff --git a/app/core/serializers/manufacturer.py b/app/core/serializers/manufacturer.py index 19bb1046..30a56c2b 100644 --- a/app/core/serializers/manufacturer.py +++ b/app/core/serializers/manufacturer.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from app.serializers.user import UserBaseSerializer @@ -80,4 +80,4 @@ class ManufacturerModelSerializer( class ManufacturerViewSerializer(ManufacturerModelSerializer): - organization = OrganizationBaseSerializer( read_only = True ) + organization = TenantBaseSerializer( read_only = True ) diff --git a/app/core/serializers/model_notes.py b/app/core/serializers/model_notes.py index 2b26e611..6d83a7aa 100644 --- a/app/core/serializers/model_notes.py +++ b/app/core/serializers/model_notes.py @@ -2,7 +2,7 @@ from django.contrib.auth.models import ContentType from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -106,7 +106,7 @@ class ModelNoteModelSerializer( attrs['model_id'] = int(self.fields.fields['model'].context['view'].kwargs['model_id']) - if str(related_model._meta.model_name).lower() == 'organization': + if str(related_model._meta.model_name).lower() == 'tenant': attrs['organization'] = related_model.objects.get( pk = int(self.fields.fields['model'].context['view'].kwargs['model_id']) @@ -142,7 +142,7 @@ class ModelNoteModelSerializer( class ModelNoteViewSerializer(ModelNoteModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) created_by = UserBaseSerializer( many = False, read_only = True ) diff --git a/app/core/serializers/ticket.py b/app/core/serializers/ticket.py index 8b90d05d..b516a2cb 100644 --- a/app/core/serializers/ticket.py +++ b/app/core/serializers/ticket.py @@ -4,7 +4,7 @@ from rest_framework.reverse import reverse from drf_spectacular.utils import extend_schema_serializer from access.serializers.entity import BaseSerializer as EntityBaseSerializer -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -411,7 +411,7 @@ class ViewSerializer(ModelSerializer): opened_by = UserBaseSerializer() - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) parent_ticket = BaseSerializer() diff --git a/app/core/serializers/ticket_category.py b/app/core/serializers/ticket_category.py index a7ed0f91..1533fbc8 100644 --- a/app/core/serializers/ticket_category.py +++ b/app/core/serializers/ticket_category.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -102,4 +102,4 @@ class TicketCategoryModelSerializer( class TicketCategoryViewSerializer(TicketCategoryModelSerializer): - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/core/serializers/ticket_comment.py b/app/core/serializers/ticket_comment.py index 28487a11..9d7e4f78 100644 --- a/app/core/serializers/ticket_comment.py +++ b/app/core/serializers/ticket_comment.py @@ -7,7 +7,7 @@ from rest_framework import serializers from drf_spectacular.utils import extend_schema_serializer from access.serializers.entity import BaseSerializer as EntityBaseSerializer -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common from api.exceptions import UnknownTicketType @@ -319,7 +319,7 @@ class ViewSerializer(ModelSerializer): category = TicketCommentCategoryBaseSerializer( many = False, read_only = True ) - organization = OrganizationBaseSerializer( many = False ) + organization = TenantBaseSerializer( many = False ) parent = BaseSerializer() diff --git a/app/core/serializers/ticket_comment_category.py b/app/core/serializers/ticket_comment_category.py index d5226804..97cfbabb 100644 --- a/app/core/serializers/ticket_comment_category.py +++ b/app/core/serializers/ticket_comment_category.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from app.serializers.user import UserBaseSerializer @@ -117,4 +117,4 @@ class TicketCommentCategoryModelSerializer( class TicketCommentCategoryViewSerializer(TicketCommentCategoryModelSerializer): - organization = OrganizationBaseSerializer( read_only = True ) + organization = TenantBaseSerializer( read_only = True ) diff --git a/app/core/serializers/ticket_comment_depreciated.py b/app/core/serializers/ticket_comment_depreciated.py index ba1a3dab..4fe2d90d 100644 --- a/app/core/serializers/ticket_comment_depreciated.py +++ b/app/core/serializers/ticket_comment_depreciated.py @@ -3,7 +3,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers from rest_framework.fields import empty -from access.serializers.organization import Organization, OrganizationBaseSerializer +from access.serializers.organization import Organization, TenantBaseSerializer from access.serializers.teams import TeamBaseSerializer from api.serializers import common @@ -683,7 +683,7 @@ class TicketCommentImportModelSerializer(TicketCommentModelSerializer): class TicketCommentViewSerializer(TicketCommentModelSerializer): - organization = OrganizationBaseSerializer( many = False ) + organization = TenantBaseSerializer( many = False ) category = TicketCommentCategoryBaseSerializer( many = False, read_only = True ) diff --git a/app/core/serializers/ticket_depreciated.py b/app/core/serializers/ticket_depreciated.py index 1eb89cd7..deebc041 100644 --- a/app/core/serializers/ticket_depreciated.py +++ b/app/core/serializers/ticket_depreciated.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from access.serializers.teams import TeamBaseSerializer from app.serializers.user import UserBaseSerializer @@ -351,7 +351,7 @@ class TicketViewSerializer(TicketModelSerializer): opened_by = UserBaseSerializer() - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) project = ProjectBaseSerializer(many=False, read_only=True) diff --git a/app/core/serializers/ticket_linked_item.py b/app/core/serializers/ticket_linked_item.py index 6dd35569..db512e90 100644 --- a/app/core/serializers/ticket_linked_item.py +++ b/app/core/serializers/ticket_linked_item.py @@ -2,7 +2,7 @@ from rest_framework.fields import empty from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from assistance.serializers.request import TicketBaseSerializer @@ -157,7 +157,7 @@ class TicketLinkedItemModelSerializer( class TicketLinkedItemViewSerializer(TicketLinkedItemModelSerializer): - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) item = serializers.SerializerMethodField('get_item') @@ -214,11 +214,11 @@ class TicketLinkedItemViewSerializer(TicketLinkedItemModelSerializer): model = OperatingSystem - elif item.item_type == TicketLinkedItem.Modules.ORGANIZATION: + elif item.item_type == TicketLinkedItem.Modules.TENANT: - from access.serializers.organization import Organization, OrganizationBaseSerializer + from access.serializers.organization import Organization, TenantBaseSerializer - base_serializer = OrganizationBaseSerializer + base_serializer = TenantBaseSerializer model = Organization diff --git a/app/core/serializers/ticket_related.py b/app/core/serializers/ticket_related.py index 197aca45..ff61cb91 100644 --- a/app/core/serializers/ticket_related.py +++ b/app/core/serializers/ticket_related.py @@ -2,7 +2,7 @@ from rest_framework.fields import empty from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -151,6 +151,6 @@ class RelatedTicketViewSerializer(RelatedTicketModelSerializer): from_ticket_id = TicketBaseSerializer() - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) to_ticket_id = TicketBaseSerializer() diff --git a/app/core/tests/abstract/model_notes_api_fields.py b/app/core/tests/abstract/model_notes_api_fields.py index da9adbc5..a8a959f2 100644 --- a/app/core/tests/abstract/model_notes_api_fields.py +++ b/app/core/tests/abstract/model_notes_api_fields.py @@ -7,7 +7,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/abstract/test_functional_history.py b/app/core/tests/abstract/test_functional_history.py index 62b5286a..23832cc3 100644 --- a/app/core/tests/abstract/test_functional_history.py +++ b/app/core/tests/abstract/test_functional_history.py @@ -1,6 +1,6 @@ from django.contrib.auth.models import ContentType -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization diff --git a/app/core/tests/abstract/test_functional_notes_viewset.py b/app/core/tests/abstract/test_functional_notes_viewset.py index 57570151..d3adaf88 100644 --- a/app/core/tests/abstract/test_functional_notes_viewset.py +++ b/app/core/tests/abstract/test_functional_notes_viewset.py @@ -3,7 +3,7 @@ import django from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/abstract/test_item_ticket_api_v2.py b/app/core/tests/abstract/test_item_ticket_api_v2.py index 03214f5e..0f10a39e 100644 --- a/app/core/tests/abstract/test_item_ticket_api_v2.py +++ b/app/core/tests/abstract/test_item_ticket_api_v2.py @@ -7,7 +7,7 @@ from django.test import TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/abstract/test_ticket_api_v2.py b/app/core/tests/abstract/test_ticket_api_v2.py index 6fe6a4f3..fa6fba6e 100644 --- a/app/core/tests/abstract/test_ticket_api_v2.py +++ b/app/core/tests/abstract/test_ticket_api_v2.py @@ -7,7 +7,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/abstract/test_ticket_serializer.py b/app/core/tests/abstract/test_ticket_serializer.py index 0ef800db..9c0b5885 100644 --- a/app/core/tests/abstract/test_ticket_serializer.py +++ b/app/core/tests/abstract/test_ticket_serializer.py @@ -6,7 +6,7 @@ from django.contrib.contenttypes.models import ContentType from django.test import TestCase from access.middleware.request import Tenancy -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/abstract/test_ticket_viewset.py b/app/core/tests/abstract/test_ticket_viewset.py index bd6610e2..be477923 100644 --- a/app/core/tests/abstract/test_ticket_viewset.py +++ b/app/core/tests/abstract/test_ticket_viewset.py @@ -5,7 +5,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/abstract/test_unit_model_history_api_v2.py b/app/core/tests/abstract/test_unit_model_history_api_v2.py index bb2d3977..cb148a54 100644 --- a/app/core/tests/abstract/test_unit_model_history_api_v2.py +++ b/app/core/tests/abstract/test_unit_model_history_api_v2.py @@ -5,7 +5,7 @@ from django.test import Client from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/abstract/test_unit_model_notes_serializer.py b/app/core/tests/abstract/test_unit_model_notes_serializer.py index 0f8175d8..aecb7f7e 100644 --- a/app/core/tests/abstract/test_unit_model_notes_serializer.py +++ b/app/core/tests/abstract/test_unit_model_notes_serializer.py @@ -4,7 +4,7 @@ from django.contrib.contenttypes.models import ContentType from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView diff --git a/app/core/tests/functional/manufacturer/test_manufacturer_serializer.py b/app/core/tests/functional/manufacturer/test_manufacturer_serializer.py index fabc0815..fd659e46 100644 --- a/app/core/tests/functional/manufacturer/test_manufacturer_serializer.py +++ b/app/core/tests/functional/manufacturer/test_manufacturer_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.serializers.manufacturer import Manufacturer, ManufacturerModelSerializer diff --git a/app/core/tests/functional/manufacturer/test_manufacturer_viewset.py b/app/core/tests/functional/manufacturer/test_manufacturer_viewset.py index 3f36928e..cb4a51ce 100644 --- a/app/core/tests/functional/manufacturer/test_manufacturer_viewset.py +++ b/app/core/tests/functional/manufacturer/test_manufacturer_viewset.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/related_ticket/test_related_ticket_serializer.py b/app/core/tests/functional/related_ticket/test_related_ticket_serializer.py index a56dab90..2252d05f 100644 --- a/app/core/tests/functional/related_ticket/test_related_ticket_serializer.py +++ b/app/core/tests/functional/related_ticket/test_related_ticket_serializer.py @@ -5,7 +5,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView diff --git a/app/core/tests/functional/related_ticket/test_related_ticket_viewset.py b/app/core/tests/functional/related_ticket/test_related_ticket_viewset.py index 6e59bf8c..43f7fb51 100644 --- a/app/core/tests/functional/related_ticket/test_related_ticket_viewset.py +++ b/app/core/tests/functional/related_ticket/test_related_ticket_viewset.py @@ -10,7 +10,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/slash_commands/test_slash_command_related.py b/app/core/tests/functional/slash_commands/test_slash_command_related.py index 176a2059..417010c0 100644 --- a/app/core/tests/functional/slash_commands/test_slash_command_related.py +++ b/app/core/tests/functional/slash_commands/test_slash_command_related.py @@ -5,7 +5,7 @@ import unittest from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.person import Person from core.models.ticket.ticket import Ticket diff --git a/app/core/tests/functional/test_history/test_functional_history_viewset.py b/app/core/tests/functional/test_history/test_functional_history_viewset.py index d25ececf..88084332 100644 --- a/app/core/tests/functional/test_history/test_functional_history_viewset.py +++ b/app/core/tests/functional/test_history/test_functional_history_viewset.py @@ -5,7 +5,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/test_task_result/test_task_result_viewset.py b/app/core/tests/functional/test_task_result/test_task_result_viewset.py index 4c99c8b1..38ba344e 100644 --- a/app/core/tests/functional/test_task_result/test_task_result_viewset.py +++ b/app/core/tests/functional/test_task_result/test_task_result_viewset.py @@ -9,7 +9,7 @@ from django import urls from django_celery_results.models import TaskResult -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/ticket_base/test_functional_ticket_base_metadata.py b/app/core/tests/functional/ticket_base/test_functional_ticket_base_metadata.py index de66dcc7..002ba846 100644 --- a/app/core/tests/functional/ticket_base/test_functional_ticket_base_metadata.py +++ b/app/core/tests/functional/ticket_base/test_functional_ticket_base_metadata.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/ticket_base/test_functional_ticket_base_viewset.py b/app/core/tests/functional/ticket_base/test_functional_ticket_base_viewset.py index 5ce752a8..320be4f7 100644 --- a/app/core/tests/functional/ticket_base/test_functional_ticket_base_viewset.py +++ b/app/core/tests/functional/ticket_base/test_functional_ticket_base_viewset.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/ticket_category/test_ticket_category_serializer.py b/app/core/tests/functional/ticket_category/test_ticket_category_serializer.py index e574e831..a1ff55ef 100644 --- a/app/core/tests/functional/ticket_category/test_ticket_category_serializer.py +++ b/app/core/tests/functional/ticket_category/test_ticket_category_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/core/tests/functional/ticket_category/test_ticket_category_viewset.py b/app/core/tests/functional/ticket_category/test_ticket_category_viewset.py index 148f1923..c7ff2ea1 100644 --- a/app/core/tests/functional/ticket_category/test_ticket_category_viewset.py +++ b/app/core/tests/functional/ticket_category/test_ticket_category_viewset.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/ticket_comment/test_ticket_comment_serializer.py b/app/core/tests/functional/ticket_comment/test_ticket_comment_serializer.py index b66f75c8..59c96f6e 100644 --- a/app/core/tests/functional/ticket_comment/test_ticket_comment_serializer.py +++ b/app/core/tests/functional/ticket_comment/test_ticket_comment_serializer.py @@ -6,7 +6,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError from access.middleware.request import Tenancy -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.serializers.ticket_comment_depreciated import ( Ticket, diff --git a/app/core/tests/functional/ticket_comment/test_ticket_comment_viewset.py b/app/core/tests/functional/ticket_comment/test_ticket_comment_viewset.py index facad4f3..999adf7b 100644 --- a/app/core/tests/functional/ticket_comment/test_ticket_comment_viewset.py +++ b/app/core/tests/functional/ticket_comment/test_ticket_comment_viewset.py @@ -5,7 +5,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/ticket_comment_category/test_ticket_comment_category_serializer.py b/app/core/tests/functional/ticket_comment_category/test_ticket_comment_category_serializer.py index f6336a99..fa239694 100644 --- a/app/core/tests/functional/ticket_comment_category/test_ticket_comment_category_serializer.py +++ b/app/core/tests/functional/ticket_comment_category/test_ticket_comment_category_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/core/tests/functional/ticket_comment_category/test_ticket_comment_category_viewset.py b/app/core/tests/functional/ticket_comment_category/test_ticket_comment_category_viewset.py index 4c3c4f7c..b867f37e 100644 --- a/app/core/tests/functional/ticket_comment_category/test_ticket_comment_category_viewset.py +++ b/app/core/tests/functional/ticket_comment_category/test_ticket_comment_category_viewset.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/functional/ticket_linked_item/test_ticket_linked_item_serializer.py b/app/core/tests/functional/ticket_linked_item/test_ticket_linked_item_serializer.py index 5c0f77af..0fca1072 100644 --- a/app/core/tests/functional/ticket_linked_item/test_ticket_linked_item_serializer.py +++ b/app/core/tests/functional/ticket_linked_item/test_ticket_linked_item_serializer.py @@ -5,7 +5,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.serializers.ticket_linked_item import Ticket, TicketLinkedItem, TicketLinkedItemModelSerializer diff --git a/app/core/tests/functional/ticket_linked_item/test_ticket_linked_item_viewset.py b/app/core/tests/functional/ticket_linked_item/test_ticket_linked_item_viewset.py index 4478cb9c..230692d6 100644 --- a/app/core/tests/functional/ticket_linked_item/test_ticket_linked_item_viewset.py +++ b/app/core/tests/functional/ticket_linked_item/test_ticket_linked_item_viewset.py @@ -5,7 +5,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/manufacturer/test_manufacturer_api_v2.py b/app/core/tests/unit/manufacturer/test_manufacturer_api_v2.py index afdf1f99..8d5c48ab 100644 --- a/app/core/tests/unit/manufacturer/test_manufacturer_api_v2.py +++ b/app/core/tests/unit/manufacturer/test_manufacturer_api_v2.py @@ -7,7 +7,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/manufacturer/test_manufacturer_permission.py b/app/core/tests/unit/manufacturer/test_manufacturer_permission.py index cbe2784a..7b462336 100644 --- a/app/core/tests/unit/manufacturer/test_manufacturer_permission.py +++ b/app/core/tests/unit/manufacturer/test_manufacturer_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/model_notes/test_unit_model_notes_model.py b/app/core/tests/unit/model_notes/test_unit_model_notes_model.py index 8543aa16..aedc2df5 100644 --- a/app/core/tests/unit/model_notes/test_unit_model_notes_model.py +++ b/app/core/tests/unit/model_notes/test_unit_model_notes_model.py @@ -3,7 +3,7 @@ import django from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import TenancyObjectInheritedCases diff --git a/app/core/tests/unit/related_ticket/test_related_ticket_api_v2.py b/app/core/tests/unit/related_ticket/test_related_ticket_api_v2.py index 09aa54fc..e75b1fa8 100644 --- a/app/core/tests/unit/related_ticket/test_related_ticket_api_v2.py +++ b/app/core/tests/unit/related_ticket/test_related_ticket_api_v2.py @@ -7,7 +7,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/test_history/test_unit_history_model.py b/app/core/tests/unit/test_history/test_unit_history_model.py index 2c5b2aca..15c6bcfb 100644 --- a/app/core/tests/unit/test_history/test_unit_history_model.py +++ b/app/core/tests/unit/test_history/test_unit_history_model.py @@ -3,7 +3,7 @@ import django from django.contrib.auth.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import TenancyObjectInheritedCases diff --git a/app/core/tests/unit/test_task_result/test_task_result.py b/app/core/tests/unit/test_task_result/test_task_result.py index 07806dc6..3518114c 100644 --- a/app/core/tests/unit/test_task_result/test_task_result.py +++ b/app/core/tests/unit/test_task_result/test_task_result.py @@ -10,7 +10,7 @@ from django.test import TestCase from celery import states -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/test_task_result/test_task_result_api_v2.py b/app/core/tests/unit/test_task_result/test_task_result_api_v2.py index 716817b3..5b552092 100644 --- a/app/core/tests/unit/test_task_result/test_task_result_api_v2.py +++ b/app/core/tests/unit/test_task_result/test_task_result_api_v2.py @@ -11,7 +11,7 @@ from django_celery_results.models import TaskResult from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_category/test_ticket_category_api_v2.py b/app/core/tests/unit/ticket_category/test_ticket_category_api_v2.py index 48c17215..5a3de87b 100644 --- a/app/core/tests/unit/ticket_category/test_ticket_category_api_v2.py +++ b/app/core/tests/unit/ticket_category/test_ticket_category_api_v2.py @@ -7,7 +7,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_category/test_ticket_category_permission.py b/app/core/tests/unit/ticket_category/test_ticket_category_permission.py index d1ffe0ee..8d18a7b8 100644 --- a/app/core/tests/unit/ticket_category/test_ticket_category_permission.py +++ b/app/core/tests/unit/ticket_category/test_ticket_category_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_category/test_ticket_category_permission_api.py b/app/core/tests/unit/ticket_category/test_ticket_category_permission_api.py index f08f6f97..60397776 100644 --- a/app/core/tests/unit/ticket_category/test_ticket_category_permission_api.py +++ b/app/core/tests/unit/ticket_category/test_ticket_category_permission_api.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_comment/test_ticket_comment_api_v2.py b/app/core/tests/unit/ticket_comment/test_ticket_comment_api_v2.py index 1e1840ef..49a102ac 100644 --- a/app/core/tests/unit/ticket_comment/test_ticket_comment_api_v2.py +++ b/app/core/tests/unit/ticket_comment/test_ticket_comment_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_comment/test_ticket_comment_permission.py b/app/core/tests/unit/ticket_comment/test_ticket_comment_permission.py index 8febfe90..a9bd599f 100644 --- a/app/core/tests/unit/ticket_comment/test_ticket_comment_permission.py +++ b/app/core/tests/unit/ticket_comment/test_ticket_comment_permission.py @@ -11,7 +11,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_comment/test_ticket_comment_permission_api.py b/app/core/tests/unit/ticket_comment/test_ticket_comment_permission_api.py index f4629561..84ba460f 100644 --- a/app/core/tests/unit/ticket_comment/test_ticket_comment_permission_api.py +++ b/app/core/tests/unit/ticket_comment/test_ticket_comment_permission_api.py @@ -8,7 +8,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_comment/test_unit_ticket_comment_model.py b/app/core/tests/unit/ticket_comment/test_unit_ticket_comment_model.py index 988c2dc2..960591e2 100644 --- a/app/core/tests/unit/ticket_comment/test_unit_ticket_comment_model.py +++ b/app/core/tests/unit/ticket_comment/test_unit_ticket_comment_model.py @@ -3,7 +3,7 @@ import pytest from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_api_v2.py b/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_api_v2.py index 7bab6eac..ff421c1a 100644 --- a/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_api_v2.py +++ b/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_api_v2.py @@ -7,7 +7,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_permission.py b/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_permission.py index 7df72b65..d2a1dee0 100644 --- a/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_permission.py +++ b/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_permission_api.py b/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_permission_api.py index 4093e9ce..a51d6095 100644 --- a/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_permission_api.py +++ b/app/core/tests/unit/ticket_comment_category/test_ticket_comment_category_permission_api.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_depreciated/test_ticket_depreciated_permission.py b/app/core/tests/unit/ticket_depreciated/test_ticket_depreciated_permission.py index 326a5958..57b81060 100644 --- a/app/core/tests/unit/ticket_depreciated/test_ticket_depreciated_permission.py +++ b/app/core/tests/unit/ticket_depreciated/test_ticket_depreciated_permission.py @@ -13,7 +13,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_depreciated/test_ticket_depreciated_permission_api.py b/app/core/tests/unit/ticket_depreciated/test_ticket_depreciated_permission_api.py index d19585a1..dc661c24 100644 --- a/app/core/tests/unit/ticket_depreciated/test_ticket_depreciated_permission_api.py +++ b/app/core/tests/unit/ticket_depreciated/test_ticket_depreciated_permission_api.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_linked_item/test_ticket_linked_item_api_v2.py b/app/core/tests/unit/ticket_linked_item/test_ticket_linked_item_api_v2.py index ccd5e6f0..91be407c 100644 --- a/app/core/tests/unit/ticket_linked_item/test_ticket_linked_item_api_v2.py +++ b/app/core/tests/unit/ticket_linked_item/test_ticket_linked_item_api_v2.py @@ -7,7 +7,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_linked_item/test_ticket_linked_item_permission.py b/app/core/tests/unit/ticket_linked_item/test_ticket_linked_item_permission.py index df547a34..b899da73 100644 --- a/app/core/tests/unit/ticket_linked_item/test_ticket_linked_item_permission.py +++ b/app/core/tests/unit/ticket_linked_item/test_ticket_linked_item_permission.py @@ -11,7 +11,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/core/tests/unit/ticket_linked_item/test_unit_ticket_linked_item_model.py b/app/core/tests/unit/ticket_linked_item/test_unit_ticket_linked_item_model.py index 8d6f56dd..973c3f53 100644 --- a/app/core/tests/unit/ticket_linked_item/test_unit_ticket_linked_item_model.py +++ b/app/core/tests/unit/ticket_linked_item/test_unit_ticket_linked_item_model.py @@ -2,7 +2,7 @@ import django from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from assistance.models.knowledge_base import KnowledgeBase diff --git a/app/core/viewsets/ticket_depreciated.py b/app/core/viewsets/ticket_depreciated.py index 185d4876..fc36d1a0 100644 --- a/app/core/viewsets/ticket_depreciated.py +++ b/app/core/viewsets/ticket_depreciated.py @@ -1,7 +1,7 @@ from api.exceptions import UnknownTicketType from api.viewsets.common import ModelViewSet -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from assistance.serializers.request import ( RequestAddTicketModelSerializer, diff --git a/app/devops/migrations/0012_alter_checkin_organization_and_more.py b/app/devops/migrations/0012_alter_checkin_organization_and_more.py new file mode 100644 index 00000000..cd0b2845 --- /dev/null +++ b/app/devops/migrations/0012_alter_checkin_organization_and_more.py @@ -0,0 +1,41 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('devops', '0011_alter_gitgroup_unique_together_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='checkin', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='featureflag', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='gitgroup', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='gitrepository', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='softwareenablefeatureflag', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + ] diff --git a/app/devops/serializers/feature_flag.py b/app/devops/serializers/feature_flag.py index 13aae8ee..e336643a 100644 --- a/app/devops/serializers/feature_flag.py +++ b/app/devops/serializers/feature_flag.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from access.serializers.organization import Organization, OrganizationBaseSerializer +from access.serializers.organization import Organization, TenantBaseSerializer from api.serializers import common @@ -164,6 +164,6 @@ class ModelSerializer( class ViewSerializer(ModelSerializer): - organization = OrganizationBaseSerializer( read_only = True ) + organization = TenantBaseSerializer( read_only = True ) software = SoftwareBaseSerializer( read_only = True ) diff --git a/app/devops/serializers/git_group.py b/app/devops/serializers/git_group.py index 39d74af7..47423ca9 100644 --- a/app/devops/serializers/git_group.py +++ b/app/devops/serializers/git_group.py @@ -2,7 +2,7 @@ from drf_spectacular.utils import extend_schema_serializer from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -125,6 +125,6 @@ class ModelSerializer( @extend_schema_serializer(component_name = 'GitGroupViewSerializer') class ViewSerializer(ModelSerializer): - organization = OrganizationBaseSerializer( read_only = True ) + organization = TenantBaseSerializer( read_only = True ) parent_group = BaseSerializer( read_only = True ) diff --git a/app/devops/serializers/git_repository/base.py b/app/devops/serializers/git_repository/base.py index aa967c38..cd626429 100644 --- a/app/devops/serializers/git_repository/base.py +++ b/app/devops/serializers/git_repository/base.py @@ -2,7 +2,7 @@ from drf_spectacular.utils import extend_schema_serializer from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -112,6 +112,6 @@ class ModelSerializer( @extend_schema_serializer(component_name = 'GitViewSerializer') class ViewSerializer(ModelSerializer): - organization = OrganizationBaseSerializer( read_only = True ) + organization = TenantBaseSerializer( read_only = True ) git_group = GitGroupBaseSerializer( read_only = True ) diff --git a/app/devops/serializers/git_repository/gitlab.py b/app/devops/serializers/git_repository/gitlab.py index f292e9d4..0becf804 100644 --- a/app/devops/serializers/git_repository/gitlab.py +++ b/app/devops/serializers/git_repository/gitlab.py @@ -2,7 +2,7 @@ from drf_spectacular.utils import extend_schema_serializer from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common diff --git a/app/devops/serializers/software_enable_feature_flag.py b/app/devops/serializers/software_enable_feature_flag.py index 66f84a4a..106c6286 100644 --- a/app/devops/serializers/software_enable_feature_flag.py +++ b/app/devops/serializers/software_enable_feature_flag.py @@ -1,7 +1,7 @@ # from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -98,6 +98,6 @@ class ModelSerializer( class ViewSerializer(ModelSerializer): - organization = OrganizationBaseSerializer( read_only = True ) + organization = TenantBaseSerializer( read_only = True ) software = SoftwareBaseSerializer( read_only = True ) diff --git a/app/devops/tests/functional/check_ins/test_functional_check_ins_create.py b/app/devops/tests/functional/check_ins/test_functional_check_ins_create.py index 15471843..ea808e57 100644 --- a/app/devops/tests/functional/check_ins/test_functional_check_ins_create.py +++ b/app/devops/tests/functional/check_ins/test_functional_check_ins_create.py @@ -2,7 +2,7 @@ from django.test import Client, TestCase from rest_framework.reverse import reverse -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from devops.models.feature_flag_history import FeatureFlag from devops.models.software_enable_feature_flag import SoftwareEnableFeatureFlag diff --git a/app/devops/tests/functional/feature_flag/test_functional_feature_flag_serializer.py b/app/devops/tests/functional/feature_flag/test_functional_feature_flag_serializer.py index 95ab2b0b..4bee8d43 100644 --- a/app/devops/tests/functional/feature_flag/test_functional_feature_flag_serializer.py +++ b/app/devops/tests/functional/feature_flag/test_functional_feature_flag_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from devops.models.software_enable_feature_flag import SoftwareEnableFeatureFlag from devops.serializers.feature_flag import FeatureFlag, ModelSerializer diff --git a/app/devops/tests/functional/feature_flag/test_functional_feature_flag_viewset.py b/app/devops/tests/functional/feature_flag/test_functional_feature_flag_viewset.py index a0c46782..3381d112 100644 --- a/app/devops/tests/functional/feature_flag/test_functional_feature_flag_viewset.py +++ b/app/devops/tests/functional/feature_flag/test_functional_feature_flag_viewset.py @@ -6,7 +6,7 @@ from django.contrib.auth.models import ( from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/devops/tests/functional/public_feature_flag/test_functional_public_feature_flag_serializer.py b/app/devops/tests/functional/public_feature_flag/test_functional_public_feature_flag_serializer.py index fcd4a6f9..ba9964e9 100644 --- a/app/devops/tests/functional/public_feature_flag/test_functional_public_feature_flag_serializer.py +++ b/app/devops/tests/functional/public_feature_flag/test_functional_public_feature_flag_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from devops.models.software_enable_feature_flag import SoftwareEnableFeatureFlag from devops.serializers.public_feature_flag import FeatureFlag, ViewSerializer diff --git a/app/devops/tests/functional/public_feature_flag/test_functional_public_feature_flag_viewset.py b/app/devops/tests/functional/public_feature_flag/test_functional_public_feature_flag_viewset.py index da54e3af..36a38e70 100644 --- a/app/devops/tests/functional/public_feature_flag/test_functional_public_feature_flag_viewset.py +++ b/app/devops/tests/functional/public_feature_flag/test_functional_public_feature_flag_viewset.py @@ -4,7 +4,7 @@ from dateutil import tz from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from api.tests.abstract.api_serializer_viewset import SerializerView diff --git a/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_serializer.py b/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_serializer.py index a4f92687..bd11e74e 100644 --- a/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_serializer.py +++ b/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_serializer.py @@ -5,7 +5,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView diff --git a/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_viewset.py b/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_viewset.py index cd8154c5..e2eb72a0 100644 --- a/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_viewset.py +++ b/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_viewset.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from django.shortcuts import reverse -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/devops/tests/unit/check_ins/test_unit_check_ins_model.py b/app/devops/tests/unit/check_ins/test_unit_check_ins_model.py index 1d0ea807..75e54abf 100644 --- a/app/devops/tests/unit/check_ins/test_unit_check_ins_model.py +++ b/app/devops/tests/unit/check_ins/test_unit_check_ins_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/devops/tests/unit/feature_flag/test_unit_feature_flag_api_v2.py b/app/devops/tests/unit/feature_flag/test_unit_feature_flag_api_v2.py index 19ba8071..2aec7120 100644 --- a/app/devops/tests/unit/feature_flag/test_unit_feature_flag_api_v2.py +++ b/app/devops/tests/unit/feature_flag/test_unit_feature_flag_api_v2.py @@ -7,7 +7,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/devops/tests/unit/feature_flag/test_unit_feature_flag_model.py b/app/devops/tests/unit/feature_flag/test_unit_feature_flag_model.py index 2549a865..4cd2fdad 100644 --- a/app/devops/tests/unit/feature_flag/test_unit_feature_flag_model.py +++ b/app/devops/tests/unit/feature_flag/test_unit_feature_flag_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/devops/tests/unit/feature_flag_notes/test_unit_feature_flag_notes_model.py b/app/devops/tests/unit/feature_flag_notes/test_unit_feature_flag_notes_model.py index 4c741ff6..f4743fdc 100644 --- a/app/devops/tests/unit/feature_flag_notes/test_unit_feature_flag_notes_model.py +++ b/app/devops/tests/unit/feature_flag_notes/test_unit_feature_flag_notes_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.tests.unit.model_notes.test_unit_model_notes_model import ( ModelNotesInheritedCases diff --git a/app/devops/tests/unit/public_feature_flag/test_unit_public_feature_flag_api_v2.py b/app/devops/tests/unit/public_feature_flag/test_unit_public_feature_flag_api_v2.py index e49cb7d3..2ac4c0b6 100644 --- a/app/devops/tests/unit/public_feature_flag/test_unit_public_feature_flag_api_v2.py +++ b/app/devops/tests/unit/public_feature_flag/test_unit_public_feature_flag_api_v2.py @@ -5,7 +5,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from devops.models.feature_flag import FeatureFlag from devops.models.software_enable_feature_flag import SoftwareEnableFeatureFlag diff --git a/app/devops/tests/unit/software_enable_feature_flag/test_unit_software_enable_feature_flag_api_v2.py b/app/devops/tests/unit/software_enable_feature_flag/test_unit_software_enable_feature_flag_api_v2.py index 60b50371..10f9f6aa 100644 --- a/app/devops/tests/unit/software_enable_feature_flag/test_unit_software_enable_feature_flag_api_v2.py +++ b/app/devops/tests/unit/software_enable_feature_flag/test_unit_software_enable_feature_flag_api_v2.py @@ -7,7 +7,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/devops/tests/unit/software_enable_feature_flag/test_unit_software_enable_feature_flag_model.py b/app/devops/tests/unit/software_enable_feature_flag/test_unit_software_enable_feature_flag_model.py index f6404bcf..a6398506 100644 --- a/app/devops/tests/unit/software_enable_feature_flag/test_unit_software_enable_feature_flag_model.py +++ b/app/devops/tests/unit/software_enable_feature_flag/test_unit_software_enable_feature_flag_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/human_resources/serializers/entity_employee.py b/app/human_resources/serializers/entity_employee.py index bbe28e9c..115a3614 100644 --- a/app/human_resources/serializers/entity_employee.py +++ b/app/human_resources/serializers/entity_employee.py @@ -4,7 +4,7 @@ from access.serializers.entity_contact import ( BaseSerializer as ContactBaseSerializer, ModelSerializer as ContactModelSerializer, ) -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from human_resources.models.employee import Employee @@ -73,4 +73,4 @@ class ViewSerializer( This model inherits from the Contact model. """ - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/itam/forms/software/update.py b/app/itam/forms/software/update.py index e9fd346f..7aa67703 100644 --- a/app/itam/forms/software/update.py +++ b/app/itam/forms/software/update.py @@ -38,7 +38,7 @@ class SoftwareChange(SoftwareForm): ) self.fields['organization'] = forms.CharField( - label = 'Organization', + label = 'Tenant', initial = self.instance.organization ) @@ -102,7 +102,7 @@ class DetailForm(SoftwareForm): self.fields[ 'organization' ] = forms.CharField( - label = 'Organization', + label = 'Tenant', initial = self.instance.organization ) diff --git a/app/itam/migrations/0012_alter_device_organization_and_more.py b/app/itam/migrations/0012_alter_device_organization_and_more.py new file mode 100644 index 00000000..24050cfd --- /dev/null +++ b/app/itam/migrations/0012_alter_device_organization_and_more.py @@ -0,0 +1,66 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('itam', '0011_itamassetbase'), + ] + + operations = [ + migrations.AlterField( + model_name='device', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='devicemodel', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='deviceoperatingsystem', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='devicesoftware', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='devicetype', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='operatingsystem', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='operatingsystemversion', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='software', + name='organization', + field=models.ForeignKey(help_text='Tenant this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='software', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='softwarecategory', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='softwareversion', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + ] diff --git a/app/itam/models/software.py b/app/itam/models/software.py index be0b65d5..2ce2af02 100644 --- a/app/itam/models/software.py +++ b/app/itam/models/software.py @@ -5,7 +5,7 @@ from django.dispatch import receiver from rest_framework.reverse import reverse from access.fields import * -from access.models.tenancy import Organization, TenancyObject +from access.models.tenancy import Tenant, TenancyObject from core.mixin.history_save import SaveHistory from core.models.manufacturer import Manufacturer @@ -148,14 +148,14 @@ class Software(SoftwareCommonFields, SaveHistory): organization = models.ForeignKey( - Organization, + Tenant, blank = False, - help_text = 'Organization this belongs to', + help_text = 'Tenant this belongs to', null = False, on_delete = models.CASCADE, related_name = 'software', validators = [ TenancyObject.validatate_organization_exists ], - verbose_name = 'Organization', + verbose_name = 'Tenant', ) publisher = models.ForeignKey( diff --git a/app/itam/serializers/asset_it_asset.py b/app/itam/serializers/asset_it_asset.py index db9e3191..650e531d 100644 --- a/app/itam/serializers/asset_it_asset.py +++ b/app/itam/serializers/asset_it_asset.py @@ -2,7 +2,7 @@ from rest_framework import serializers from drf_spectacular.utils import extend_schema_serializer -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from accounting.serializers.asset import ( BaseSerializer, @@ -78,4 +78,4 @@ class ViewSerializer( ): """IT Asset Base View Model""" - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/itam/serializers/device.py b/app/itam/serializers/device.py index e50e4e5a..28217d21 100644 --- a/app/itam/serializers/device.py +++ b/app/itam/serializers/device.py @@ -5,7 +5,7 @@ from drf_spectacular.utils import extend_schema, extend_schema_view, OpenApiResp from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common from api.viewsets.common import ModelViewSet @@ -153,4 +153,4 @@ class DeviceViewSerializer(DeviceModelSerializer): device_type = DeviceTypeBaseSerializer( many = False, read_only = True ) - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/itam/serializers/device_model.py b/app/itam/serializers/device_model.py index a3873181..84276aef 100644 --- a/app/itam/serializers/device_model.py +++ b/app/itam/serializers/device_model.py @@ -2,7 +2,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -84,5 +84,5 @@ class DeviceModelViewSerializer(DeviceModelModelSerializer): manufacturer = ManufacturerBaseSerializer( many = False, read_only = True ) - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/itam/serializers/device_notes.py b/app/itam/serializers/device_notes.py index be3a696c..c22ccc87 100644 --- a/app/itam/serializers/device_notes.py +++ b/app/itam/serializers/device_notes.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common diff --git a/app/itam/serializers/device_operating_system.py b/app/itam/serializers/device_operating_system.py index dd9778e8..64f3f266 100644 --- a/app/itam/serializers/device_operating_system.py +++ b/app/itam/serializers/device_operating_system.py @@ -2,7 +2,7 @@ from rest_framework import serializers from rest_framework.fields import empty from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -173,6 +173,6 @@ class DeviceOperatingSystemViewSerializer(DeviceOperatingSystemModelSerializer): operating_system_version = OperatingSystemVersionBaseSerializer(many=False, read_only=True) - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/itam/serializers/device_software.py b/app/itam/serializers/device_software.py index 449caf90..3c51ac8f 100644 --- a/app/itam/serializers/device_software.py +++ b/app/itam/serializers/device_software.py @@ -2,7 +2,7 @@ from rest_framework import serializers from rest_framework.fields import empty from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -206,7 +206,7 @@ class DeviceSoftwareViewSerializer(DeviceSoftwareModelSerializer): installedversion = SoftwareVersionBaseSerializer(many=False, read_only=True) - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) software = SoftwareBaseSerializer(many=False, read_only=True) diff --git a/app/itam/serializers/device_type.py b/app/itam/serializers/device_type.py index ae3f0175..c49b04f9 100644 --- a/app/itam/serializers/device_type.py +++ b/app/itam/serializers/device_type.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -78,5 +78,5 @@ class DeviceTypeModelSerializer( class DeviceTypeViewSerializer(DeviceTypeModelSerializer): - organization = OrganizationBaseSerializer(many=False, read_only=True) + organization = TenantBaseSerializer(many=False, read_only=True) diff --git a/app/itam/serializers/operating_system.py b/app/itam/serializers/operating_system.py index 5fb34467..067f95a3 100644 --- a/app/itam/serializers/operating_system.py +++ b/app/itam/serializers/operating_system.py @@ -2,7 +2,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -103,7 +103,7 @@ class OperatingSystemModelSerializer( class OperatingSystemViewSerializer(OperatingSystemModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) publisher = ManufacturerBaseSerializer( many = False, read_only = True ) diff --git a/app/itam/serializers/operating_system_version.py b/app/itam/serializers/operating_system_version.py index b23f5c76..76a929ca 100644 --- a/app/itam/serializers/operating_system_version.py +++ b/app/itam/serializers/operating_system_version.py @@ -2,7 +2,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -109,5 +109,5 @@ class OperatingSystemVersionViewSerializer(OperatingSystemVersionModelSerializer operating_system = OperatingSystemBaseSerializer( many = False, read_only = True ) - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/itam/serializers/software.py b/app/itam/serializers/software.py index 1dab52b4..4ee6b6f5 100644 --- a/app/itam/serializers/software.py +++ b/app/itam/serializers/software.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -125,6 +125,6 @@ class SoftwareViewSerializer(SoftwareModelSerializer): category = SoftwareCategoryBaseSerializer( many = False, read_only = True ) - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) publisher = ManufacturerBaseSerializer( many = False, read_only = True ) diff --git a/app/itam/serializers/software_category.py b/app/itam/serializers/software_category.py index 7947679a..c0aba9dd 100644 --- a/app/itam/serializers/software_category.py +++ b/app/itam/serializers/software_category.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -86,4 +86,4 @@ class SoftwareCategoryModelSerializer( class SoftwareCategoryViewSerializer(SoftwareCategoryModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/itam/serializers/software_version.py b/app/itam/serializers/software_version.py index 3209050e..b6922b84 100644 --- a/app/itam/serializers/software_version.py +++ b/app/itam/serializers/software_version.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -120,4 +120,4 @@ class SoftwareVersionViewSerializer(SoftwareVersionModelSerializer): software = SoftwareBaseSerializer( many = False, read_only = True ) - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/itam/tasks/inventory.py b/app/itam/tasks/inventory.py index d9915844..5eed3b5f 100644 --- a/app/itam/tasks/inventory.py +++ b/app/itam/tasks/inventory.py @@ -7,7 +7,7 @@ from celery import shared_task, current_task from celery.utils.log import get_task_logger from celery import states -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from itam.serializers.inventory import InventorySerializer diff --git a/app/itam/tests/functional/device/test_device_serializer.py b/app/itam/tests/functional/device/test_device_serializer.py index cf3ddf01..f18e96a5 100644 --- a/app/itam/tests/functional/device/test_device_serializer.py +++ b/app/itam/tests/functional/device/test_device_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itam/tests/functional/device/test_device_viewset.py b/app/itam/tests/functional/device/test_device_viewset.py index 4722a555..2fff981c 100644 --- a/app/itam/tests/functional/device/test_device_viewset.py +++ b/app/itam/tests/functional/device/test_device_viewset.py @@ -6,7 +6,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/device_model/test_device_model_serializer.py b/app/itam/tests/functional/device_model/test_device_model_serializer.py index ed93649f..6d4e11ba 100644 --- a/app/itam/tests/functional/device_model/test_device_model_serializer.py +++ b/app/itam/tests/functional/device_model/test_device_model_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itam/tests/functional/device_model/test_device_model_viewset.py b/app/itam/tests/functional/device_model/test_device_model_viewset.py index d5eb308f..da816093 100644 --- a/app/itam/tests/functional/device_model/test_device_model_viewset.py +++ b/app/itam/tests/functional/device_model/test_device_model_viewset.py @@ -6,7 +6,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/device_operating_system/test_device_operating_system_serializer.py b/app/itam/tests/functional/device_operating_system/test_device_operating_system_serializer.py index 2a9ec334..d988d2e0 100644 --- a/app/itam/tests/functional/device_operating_system/test_device_operating_system_serializer.py +++ b/app/itam/tests/functional/device_operating_system/test_device_operating_system_serializer.py @@ -7,7 +7,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError from access.middleware.request import Tenancy -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from itam.serializers.device_operating_system import Device, DeviceOperatingSystem, DeviceOperatingSystemModelSerializer from itam.models.operating_system import OperatingSystem, OperatingSystemVersion diff --git a/app/itam/tests/functional/device_operating_system/test_device_operating_system_viewset.py b/app/itam/tests/functional/device_operating_system/test_device_operating_system_viewset.py index e592580c..ae6d86e0 100644 --- a/app/itam/tests/functional/device_operating_system/test_device_operating_system_viewset.py +++ b/app/itam/tests/functional/device_operating_system/test_device_operating_system_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/device_software/test_device_software_serializer.py b/app/itam/tests/functional/device_software/test_device_software_serializer.py index bb379f37..fd418538 100644 --- a/app/itam/tests/functional/device_software/test_device_software_serializer.py +++ b/app/itam/tests/functional/device_software/test_device_software_serializer.py @@ -6,7 +6,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError from access.middleware.request import Tenancy -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from itam.serializers.device_software import Device, DeviceSoftware, DeviceSoftwareModelSerializer from itam.models.software import Software, SoftwareCategory, SoftwareVersion diff --git a/app/itam/tests/functional/device_software/test_device_software_viewset.py b/app/itam/tests/functional/device_software/test_device_software_viewset.py index f63c2cf4..6691d958 100644 --- a/app/itam/tests/functional/device_software/test_device_software_viewset.py +++ b/app/itam/tests/functional/device_software/test_device_software_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/device_type/test_device_type_serializer.py b/app/itam/tests/functional/device_type/test_device_type_serializer.py index 1db5ae90..85a709bb 100644 --- a/app/itam/tests/functional/device_type/test_device_type_serializer.py +++ b/app/itam/tests/functional/device_type/test_device_type_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itam/tests/functional/device_type/test_device_type_viewset.py b/app/itam/tests/functional/device_type/test_device_type_viewset.py index 724e74e9..7a50039f 100644 --- a/app/itam/tests/functional/device_type/test_device_type_viewset.py +++ b/app/itam/tests/functional/device_type/test_device_type_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/endpoint_operating_system_installs/test_operating_system_installs_viewset.py b/app/itam/tests/functional/endpoint_operating_system_installs/test_operating_system_installs_viewset.py index bf0e4c62..ad7d1005 100644 --- a/app/itam/tests/functional/endpoint_operating_system_installs/test_operating_system_installs_viewset.py +++ b/app/itam/tests/functional/endpoint_operating_system_installs/test_operating_system_installs_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/endpoint_software_installs/test_software_installs_serializer.py b/app/itam/tests/functional/endpoint_software_installs/test_software_installs_serializer.py index 49236e9a..5e2704e4 100644 --- a/app/itam/tests/functional/endpoint_software_installs/test_software_installs_serializer.py +++ b/app/itam/tests/functional/endpoint_software_installs/test_software_installs_serializer.py @@ -6,7 +6,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError from access.middleware.request import Tenancy -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from itam.serializers.device_software import Device, DeviceSoftware, DeviceSoftwareModelSerializer, SoftwareInstallsModelSerializer from itam.models.software import Software, SoftwareCategory, SoftwareVersion diff --git a/app/itam/tests/functional/endpoint_software_installs/test_software_installs_viewset.py b/app/itam/tests/functional/endpoint_software_installs/test_software_installs_viewset.py index d563e81d..ffa52355 100644 --- a/app/itam/tests/functional/endpoint_software_installs/test_software_installs_viewset.py +++ b/app/itam/tests/functional/endpoint_software_installs/test_software_installs_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/inventory/test_inventory_serializer.py b/app/itam/tests/functional/inventory/test_inventory_serializer.py index c078a71e..6160f9aa 100644 --- a/app/itam/tests/functional/inventory/test_inventory_serializer.py +++ b/app/itam/tests/functional/inventory/test_inventory_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from itam.serializers.inventory import ( InventorySerializer diff --git a/app/itam/tests/functional/inventory/test_inventory_viewset.py b/app/itam/tests/functional/inventory/test_inventory_viewset.py index a904f99c..1acecb42 100644 --- a/app/itam/tests/functional/inventory/test_inventory_viewset.py +++ b/app/itam/tests/functional/inventory/test_inventory_viewset.py @@ -9,7 +9,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/operating_system/test_operating_system_serializer.py b/app/itam/tests/functional/operating_system/test_operating_system_serializer.py index 064e44bf..ddeae281 100644 --- a/app/itam/tests/functional/operating_system/test_operating_system_serializer.py +++ b/app/itam/tests/functional/operating_system/test_operating_system_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itam/tests/functional/operating_system/test_operating_system_viewset.py b/app/itam/tests/functional/operating_system/test_operating_system_viewset.py index e0f638ae..674bd43d 100644 --- a/app/itam/tests/functional/operating_system/test_operating_system_viewset.py +++ b/app/itam/tests/functional/operating_system/test_operating_system_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/operating_system_version/test_operating_system_version_serializer.py b/app/itam/tests/functional/operating_system_version/test_operating_system_version_serializer.py index a8e33732..8989a72b 100644 --- a/app/itam/tests/functional/operating_system_version/test_operating_system_version_serializer.py +++ b/app/itam/tests/functional/operating_system_version/test_operating_system_version_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itam/tests/functional/operating_system_version/test_operating_system_version_viewset.py b/app/itam/tests/functional/operating_system_version/test_operating_system_version_viewset.py index 683d6034..f86a2601 100644 --- a/app/itam/tests/functional/operating_system_version/test_operating_system_version_viewset.py +++ b/app/itam/tests/functional/operating_system_version/test_operating_system_version_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/software/test_software_serializer.py b/app/itam/tests/functional/software/test_software_serializer.py index e73a3e2f..80fe8fa3 100644 --- a/app/itam/tests/functional/software/test_software_serializer.py +++ b/app/itam/tests/functional/software/test_software_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itam/tests/functional/software/test_software_viewset.py b/app/itam/tests/functional/software/test_software_viewset.py index a8c2aa26..bdc83573 100644 --- a/app/itam/tests/functional/software/test_software_viewset.py +++ b/app/itam/tests/functional/software/test_software_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/software_category/test_software_category_serializer.py b/app/itam/tests/functional/software_category/test_software_category_serializer.py index 7158a490..d2bff77a 100644 --- a/app/itam/tests/functional/software_category/test_software_category_serializer.py +++ b/app/itam/tests/functional/software_category/test_software_category_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itam/tests/functional/software_category/test_software_category_viewset.py b/app/itam/tests/functional/software_category/test_software_category_viewset.py index 67284e8a..5b46f1d6 100644 --- a/app/itam/tests/functional/software_category/test_software_category_viewset.py +++ b/app/itam/tests/functional/software_category/test_software_category_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/functional/software_version/test_software_version_serializer.py b/app/itam/tests/functional/software_version/test_software_version_serializer.py index 6a72e2ba..9d9cb813 100644 --- a/app/itam/tests/functional/software_version/test_software_version_serializer.py +++ b/app/itam/tests/functional/software_version/test_software_version_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itam/tests/functional/software_version/test_software_version_viewset.py b/app/itam/tests/functional/software_version/test_software_version_viewset.py index 94361700..5e554f5b 100644 --- a/app/itam/tests/functional/software_version/test_software_version_viewset.py +++ b/app/itam/tests/functional/software_version/test_software_version_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device/test_device_api.py b/app/itam/tests/unit/device/test_device_api.py index eae9868a..e2c88011 100644 --- a/app/itam/tests/unit/device/test_device_api.py +++ b/app/itam/tests/unit/device/test_device_api.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device/test_device_api_v2.py b/app/itam/tests/unit/device/test_device_api_v2.py index a933a232..9b066bfc 100644 --- a/app/itam/tests/unit/device/test_device_api_v2.py +++ b/app/itam/tests/unit/device/test_device_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device/test_device_permission.py b/app/itam/tests/unit/device/test_device_permission.py index c2596ac8..8d8f40e0 100644 --- a/app/itam/tests/unit/device/test_device_permission.py +++ b/app/itam/tests/unit/device/test_device_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device/test_device_permission_api.py b/app/itam/tests/unit/device/test_device_permission_api.py index 7ec91578..0be6e536 100644 --- a/app/itam/tests/unit/device/test_device_permission_api.py +++ b/app/itam/tests/unit/device/test_device_permission_api.py @@ -6,7 +6,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device_model/test_device_model_api_v2.py b/app/itam/tests/unit/device_model/test_device_model_api_v2.py index ee6ba9ac..2e4e22b8 100644 --- a/app/itam/tests/unit/device_model/test_device_model_api_v2.py +++ b/app/itam/tests/unit/device_model/test_device_model_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device_model/test_device_model_permission.py b/app/itam/tests/unit/device_model/test_device_model_permission.py index e41a63e5..a912d2ee 100644 --- a/app/itam/tests/unit/device_model/test_device_model_permission.py +++ b/app/itam/tests/unit/device_model/test_device_model_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device_operating_system/test_device_operating_system_api_v2.py b/app/itam/tests/unit/device_operating_system/test_device_operating_system_api_v2.py index 1a2775f6..bebbc805 100644 --- a/app/itam/tests/unit/device_operating_system/test_device_operating_system_api_v2.py +++ b/app/itam/tests/unit/device_operating_system/test_device_operating_system_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device_operating_system/test_unit_device_operating_system_model.py b/app/itam/tests/unit/device_operating_system/test_unit_device_operating_system_model.py index 42561375..19cb9ae8 100644 --- a/app/itam/tests/unit/device_operating_system/test_unit_device_operating_system_model.py +++ b/app/itam/tests/unit/device_operating_system/test_unit_device_operating_system_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/itam/tests/unit/device_software/test_device_software_api_v2.py b/app/itam/tests/unit/device_software/test_device_software_api_v2.py index 0583a5aa..b7c33874 100644 --- a/app/itam/tests/unit/device_software/test_device_software_api_v2.py +++ b/app/itam/tests/unit/device_software/test_device_software_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device_software/test_unit_device_software_model.py b/app/itam/tests/unit/device_software/test_unit_device_software_model.py index 6e138eb1..35f8719c 100644 --- a/app/itam/tests/unit/device_software/test_unit_device_software_model.py +++ b/app/itam/tests/unit/device_software/test_unit_device_software_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/itam/tests/unit/device_type/test_device_type_api_v2.py b/app/itam/tests/unit/device_type/test_device_type_api_v2.py index d42a99c1..d154f695 100644 --- a/app/itam/tests/unit/device_type/test_device_type_api_v2.py +++ b/app/itam/tests/unit/device_type/test_device_type_api_v2.py @@ -7,7 +7,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/device_type/test_device_type_permission.py b/app/itam/tests/unit/device_type/test_device_type_permission.py index 896bfc59..c0d74ad0 100644 --- a/app/itam/tests/unit/device_type/test_device_type_permission.py +++ b/app/itam/tests/unit/device_type/test_device_type_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/endpoint_operating_system_installs/test_operating_system_installs_api_v2.py b/app/itam/tests/unit/endpoint_operating_system_installs/test_operating_system_installs_api_v2.py index 70e8a764..a0fe57f3 100644 --- a/app/itam/tests/unit/endpoint_operating_system_installs/test_operating_system_installs_api_v2.py +++ b/app/itam/tests/unit/endpoint_operating_system_installs/test_operating_system_installs_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/endpoint_software_installs/test_software_installs_api_v2.py b/app/itam/tests/unit/endpoint_software_installs/test_software_installs_api_v2.py index 7830f9ce..c3cd9afa 100644 --- a/app/itam/tests/unit/endpoint_software_installs/test_software_installs_api_v2.py +++ b/app/itam/tests/unit/endpoint_software_installs/test_software_installs_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/inventory/test_api_inventory.py b/app/itam/tests/unit/inventory/test_api_inventory.py index 3b254d22..5a5f9ffd 100644 --- a/app/itam/tests/unit/inventory/test_api_inventory.py +++ b/app/itam/tests/unit/inventory/test_api_inventory.py @@ -12,7 +12,7 @@ from django.test.utils import override_settings from unittest.mock import patch -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/inventory/test_inventory_permission_api.py b/app/itam/tests/unit/inventory/test_inventory_permission_api.py index ca826245..37b61e10 100644 --- a/app/itam/tests/unit/inventory/test_inventory_permission_api.py +++ b/app/itam/tests/unit/inventory/test_inventory_permission_api.py @@ -13,7 +13,7 @@ from django.test.utils import override_settings from unittest.mock import patch -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/operating_system/test_operating_system_api_v2.py b/app/itam/tests/unit/operating_system/test_operating_system_api_v2.py index cdccaa0c..63b4a5d6 100644 --- a/app/itam/tests/unit/operating_system/test_operating_system_api_v2.py +++ b/app/itam/tests/unit/operating_system/test_operating_system_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/operating_system/test_operating_system_permission.py b/app/itam/tests/unit/operating_system/test_operating_system_permission.py index 37fd8b93..94a6d1b7 100644 --- a/app/itam/tests/unit/operating_system/test_operating_system_permission.py +++ b/app/itam/tests/unit/operating_system/test_operating_system_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/operating_system_version/test_operating_system_version_api_v2.py b/app/itam/tests/unit/operating_system_version/test_operating_system_version_api_v2.py index e1575e76..42e8e8ce 100644 --- a/app/itam/tests/unit/operating_system_version/test_operating_system_version_api_v2.py +++ b/app/itam/tests/unit/operating_system_version/test_operating_system_version_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/operating_system_version/test_unit_operating_system_version_model.py b/app/itam/tests/unit/operating_system_version/test_unit_operating_system_version_model.py index ffc3c6c6..f86e2d37 100644 --- a/app/itam/tests/unit/operating_system_version/test_unit_operating_system_version_model.py +++ b/app/itam/tests/unit/operating_system_version/test_unit_operating_system_version_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/itam/tests/unit/operating_system_version_notes/test_unit_operating_system_version_notes_model.py b/app/itam/tests/unit/operating_system_version_notes/test_unit_operating_system_version_notes_model.py index a94e490d..c80439a3 100644 --- a/app/itam/tests/unit/operating_system_version_notes/test_unit_operating_system_version_notes_model.py +++ b/app/itam/tests/unit/operating_system_version_notes/test_unit_operating_system_version_notes_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.tests.unit.model_notes.test_unit_model_notes_model import ( ModelNotesInheritedCases diff --git a/app/itam/tests/unit/software/test_software_api.py b/app/itam/tests/unit/software/test_software_api.py index e40214d8..44c13fce 100644 --- a/app/itam/tests/unit/software/test_software_api.py +++ b/app/itam/tests/unit/software/test_software_api.py @@ -10,7 +10,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/software/test_software_api_v2.py b/app/itam/tests/unit/software/test_software_api_v2.py index 091d3eee..3e7b0b7e 100644 --- a/app/itam/tests/unit/software/test_software_api_v2.py +++ b/app/itam/tests/unit/software/test_software_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/software/test_software_permission.py b/app/itam/tests/unit/software/test_software_permission.py index 337d86bb..59138117 100644 --- a/app/itam/tests/unit/software/test_software_permission.py +++ b/app/itam/tests/unit/software/test_software_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/software/test_software_permission_api.py b/app/itam/tests/unit/software/test_software_permission_api.py index 878b69f5..95edf776 100644 --- a/app/itam/tests/unit/software/test_software_permission_api.py +++ b/app/itam/tests/unit/software/test_software_permission_api.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/software_category/test_software_category_api_v2.py b/app/itam/tests/unit/software_category/test_software_category_api_v2.py index 3314f86c..ba86f2a3 100644 --- a/app/itam/tests/unit/software_category/test_software_category_api_v2.py +++ b/app/itam/tests/unit/software_category/test_software_category_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/software_category/test_software_category_permission.py b/app/itam/tests/unit/software_category/test_software_category_permission.py index 738fe1be..fa2b275f 100644 --- a/app/itam/tests/unit/software_category/test_software_category_permission.py +++ b/app/itam/tests/unit/software_category/test_software_category_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/software_version/test_software_version_api_v2.py b/app/itam/tests/unit/software_version/test_software_version_api_v2.py index aea0a9d9..64f48f1b 100644 --- a/app/itam/tests/unit/software_version/test_software_version_api_v2.py +++ b/app/itam/tests/unit/software_version/test_software_version_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itam/tests/unit/software_version/test_unit_software_version_model.py b/app/itam/tests/unit/software_version/test_unit_software_version_model.py index 8637b197..7abe7675 100644 --- a/app/itam/tests/unit/software_version/test_unit_software_version_model.py +++ b/app/itam/tests/unit/software_version/test_unit_software_version_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/itam/tests/unit/software_version_notes/test_unit_software_version_notes_model.py b/app/itam/tests/unit/software_version_notes/test_unit_software_version_notes_model.py index 06cb6a45..3151415f 100644 --- a/app/itam/tests/unit/software_version_notes/test_unit_software_version_notes_model.py +++ b/app/itam/tests/unit/software_version_notes/test_unit_software_version_notes_model.py @@ -1,7 +1,7 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.tests.unit.model_notes.test_unit_model_notes_model import ( ModelNotesInheritedCases diff --git a/app/itam/views/device.py b/app/itam/views/device.py index 03bd25fb..efabddf9 100644 --- a/app/itam/views/device.py +++ b/app/itam/views/device.py @@ -6,7 +6,7 @@ from django.http import HttpResponseRedirect from django.urls import reverse from django.utils.decorators import method_decorator -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from ..models.device import Device, DeviceSoftware, DeviceOperatingSystem from ..models.software import Software diff --git a/app/itim/migrations/0010_alter_cluster_organization_and_more.py b/app/itim/migrations/0010_alter_cluster_organization_and_more.py new file mode 100644 index 00000000..37e1dcfd --- /dev/null +++ b/app/itim/migrations/0010_alter_cluster_organization_and_more.py @@ -0,0 +1,36 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('itim', '0009_slmticket_requestticket'), + ] + + operations = [ + migrations.AlterField( + model_name='cluster', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='clustertype', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='port', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='service', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + ] diff --git a/app/itim/serializers/cluster.py b/app/itim/serializers/cluster.py index d19f1456..c1a813df 100644 --- a/app/itim/serializers/cluster.py +++ b/app/itim/serializers/cluster.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -147,6 +147,6 @@ class ClusterViewSerializer(ClusterModelSerializer): nodes = DeviceBaseSerializer( many = True, read_only = True ) - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) parent_cluster = ClusterBaseSerializer( many = False, read_only = True ) diff --git a/app/itim/serializers/cluster_type.py b/app/itim/serializers/cluster_type.py index 09aba710..c3c56d88 100644 --- a/app/itim/serializers/cluster_type.py +++ b/app/itim/serializers/cluster_type.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -79,4 +79,4 @@ class ClusterTypeModelSerializer( class ClusterTypeViewSerializer(ClusterTypeModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/itim/serializers/port.py b/app/itim/serializers/port.py index 928f8fde..9817c536 100644 --- a/app/itim/serializers/port.py +++ b/app/itim/serializers/port.py @@ -1,7 +1,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -85,4 +85,4 @@ class PortModelSerializer( class PortViewSerializer(PortModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/itim/serializers/service.py b/app/itim/serializers/service.py index fb0c1e0f..a29865aa 100644 --- a/app/itim/serializers/service.py +++ b/app/itim/serializers/service.py @@ -2,7 +2,7 @@ from rest_framework.fields import empty from rest_framework import serializers from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -283,7 +283,7 @@ class ServiceViewSerializer(ServiceModelSerializer): dependent_service = ServiceBaseSerializer( many = True, read_only = True ) - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) port = PortBaseSerializer( many = True, read_only = True ) diff --git a/app/itim/tests/functional/cluster/test_cluster_serializer.py b/app/itim/tests/functional/cluster/test_cluster_serializer.py index ca7891f7..1acf40d7 100644 --- a/app/itim/tests/functional/cluster/test_cluster_serializer.py +++ b/app/itim/tests/functional/cluster/test_cluster_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itim/tests/functional/cluster/test_cluster_viewset.py b/app/itim/tests/functional/cluster/test_cluster_viewset.py index e476d7e5..bb5362b9 100644 --- a/app/itim/tests/functional/cluster/test_cluster_viewset.py +++ b/app/itim/tests/functional/cluster/test_cluster_viewset.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Permission, User from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/functional/cluster_types/test_cluster_type_serializer.py b/app/itim/tests/functional/cluster_types/test_cluster_type_serializer.py index 0948d355..96d34934 100644 --- a/app/itim/tests/functional/cluster_types/test_cluster_type_serializer.py +++ b/app/itim/tests/functional/cluster_types/test_cluster_type_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from itim.serializers.cluster_type import ClusterType, ClusterTypeModelSerializer diff --git a/app/itim/tests/functional/cluster_types/test_cluster_type_viewset.py b/app/itim/tests/functional/cluster_types/test_cluster_type_viewset.py index 11db1262..dd58a59e 100644 --- a/app/itim/tests/functional/cluster_types/test_cluster_type_viewset.py +++ b/app/itim/tests/functional/cluster_types/test_cluster_type_viewset.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Permission, User from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/functional/port/test_port_serializer.py b/app/itim/tests/functional/port/test_port_serializer.py index 09abe75a..48fd5722 100644 --- a/app/itim/tests/functional/port/test_port_serializer.py +++ b/app/itim/tests/functional/port/test_port_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itim/tests/functional/port/test_port_viewset.py b/app/itim/tests/functional/port/test_port_viewset.py index dc9e5242..1a458f86 100644 --- a/app/itim/tests/functional/port/test_port_viewset.py +++ b/app/itim/tests/functional/port/test_port_viewset.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Permission, User from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/functional/service/test_service_serializer.py b/app/itim/tests/functional/service/test_service_serializer.py index 5c602fe8..6a0c289b 100644 --- a/app/itim/tests/functional/service/test_service_serializer.py +++ b/app/itim/tests/functional/service/test_service_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/itim/tests/functional/service/test_service_viewset.py b/app/itim/tests/functional/service/test_service_viewset.py index 5bee1956..e2b4490f 100644 --- a/app/itim/tests/functional/service/test_service_viewset.py +++ b/app/itim/tests/functional/service/test_service_viewset.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Permission,User from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/functional/service_cluster/test_service_cluster_viewset.py b/app/itim/tests/functional/service_cluster/test_service_cluster_viewset.py index 9c2a9ea0..d3474550 100644 --- a/app/itim/tests/functional/service_cluster/test_service_cluster_viewset.py +++ b/app/itim/tests/functional/service_cluster/test_service_cluster_viewset.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Permission, User from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/functional/service_device/test_service_device_viewset.py b/app/itim/tests/functional/service_device/test_service_device_viewset.py index ca4fdabc..88f10c9c 100644 --- a/app/itim/tests/functional/service_device/test_service_device_viewset.py +++ b/app/itim/tests/functional/service_device/test_service_device_viewset.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import Permission, User from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/unit/cluster/test_cluster_api_v2.py b/app/itim/tests/unit/cluster/test_cluster_api_v2.py index 8e170534..b94a8f95 100644 --- a/app/itim/tests/unit/cluster/test_cluster_api_v2.py +++ b/app/itim/tests/unit/cluster/test_cluster_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/unit/cluster/test_cluster_permission.py b/app/itim/tests/unit/cluster/test_cluster_permission.py index ed861874..8bd4d725 100644 --- a/app/itim/tests/unit/cluster/test_cluster_permission.py +++ b/app/itim/tests/unit/cluster/test_cluster_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/unit/cluster_types/test_cluster_type_api_v2.py b/app/itim/tests/unit/cluster_types/test_cluster_type_api_v2.py index 2f223118..ad1a7981 100644 --- a/app/itim/tests/unit/cluster_types/test_cluster_type_api_v2.py +++ b/app/itim/tests/unit/cluster_types/test_cluster_type_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/unit/cluster_types/test_cluster_type_permission.py b/app/itim/tests/unit/cluster_types/test_cluster_type_permission.py index a819e229..2790a5ea 100644 --- a/app/itim/tests/unit/cluster_types/test_cluster_type_permission.py +++ b/app/itim/tests/unit/cluster_types/test_cluster_type_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/unit/port/test_port_api_v2.py b/app/itim/tests/unit/port/test_port_api_v2.py index 50c9da0c..72143adc 100644 --- a/app/itim/tests/unit/port/test_port_api_v2.py +++ b/app/itim/tests/unit/port/test_port_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/unit/port/test_port_permission.py b/app/itim/tests/unit/port/test_port_permission.py index 2d5c5d1e..f3f83a54 100644 --- a/app/itim/tests/unit/port/test_port_permission.py +++ b/app/itim/tests/unit/port/test_port_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/unit/port_notes/test_unit_port_notes_model.py b/app/itim/tests/unit/port_notes/test_unit_port_notes_model.py index afa3507f..e0c1e014 100644 --- a/app/itim/tests/unit/port_notes/test_unit_port_notes_model.py +++ b/app/itim/tests/unit/port_notes/test_unit_port_notes_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.tests.unit.model_notes.test_unit_model_notes_model import ( ModelNotesInheritedCases diff --git a/app/itim/tests/unit/service/test_service_api_v2.py b/app/itim/tests/unit/service/test_service_api_v2.py index 853d57e5..6dbbeed6 100644 --- a/app/itim/tests/unit/service/test_service_api_v2.py +++ b/app/itim/tests/unit/service/test_service_api_v2.py @@ -8,7 +8,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/itim/tests/unit/service/test_service_permission.py b/app/itim/tests/unit/service/test_service_permission.py index 26f12cfe..e3e499e5 100644 --- a/app/itim/tests/unit/service/test_service_permission.py +++ b/app/itim/tests/unit/service/test_service_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/migrations/0006_alter_project_organization_and_more.py b/app/project_management/migrations/0006_alter_project_organization_and_more.py new file mode 100644 index 00000000..ee4640c8 --- /dev/null +++ b/app/project_management/migrations/0006_alter_project_organization_and_more.py @@ -0,0 +1,36 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('project_management', '0005_projecthistory_projectmilestonehistory_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='project', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='projectmilestone', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='projectstate', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='projecttype', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + ] diff --git a/app/project_management/serializers/project.py b/app/project_management/serializers/project.py index 33268701..b9149392 100644 --- a/app/project_management/serializers/project.py +++ b/app/project_management/serializers/project.py @@ -1,7 +1,7 @@ from rest_framework import serializers from rest_framework.reverse import reverse -from access.serializers.organization import Organization, OrganizationBaseSerializer +from access.serializers.organization import Organization, TenantBaseSerializer from api.serializers import common from app.serializers.user import UserBaseSerializer @@ -147,7 +147,7 @@ class ProjectViewSerializer(ProjectModelSerializer): manager_user = UserBaseSerializer( many = False, read_only = True ) - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) state = ProjectStateBaseSerializer( many = False, read_only = True ) diff --git a/app/project_management/serializers/project_milestone.py b/app/project_management/serializers/project_milestone.py index 8a72741d..b40e13f9 100644 --- a/app/project_management/serializers/project_milestone.py +++ b/app/project_management/serializers/project_milestone.py @@ -2,7 +2,7 @@ from rest_framework import serializers from rest_framework.fields import empty from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -111,6 +111,6 @@ class ProjectMilestoneModelSerializer( class ProjectMilestoneViewSerializer(ProjectMilestoneModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) project = ProjectBaseSerializer( many = False, read_only = True ) diff --git a/app/project_management/serializers/project_states.py b/app/project_management/serializers/project_states.py index 0da7fb85..c4a19e03 100644 --- a/app/project_management/serializers/project_states.py +++ b/app/project_management/serializers/project_states.py @@ -2,7 +2,7 @@ from rest_framework import serializers from rest_framework.fields import empty from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -83,6 +83,6 @@ class ProjectStateModelSerializer( class ProjectStateViewSerializer(ProjectStateModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) runbook = KnowledgeBaseBaseSerializer( many = False, read_only = True ) diff --git a/app/project_management/serializers/project_type.py b/app/project_management/serializers/project_type.py index b1b1b673..15a2c030 100644 --- a/app/project_management/serializers/project_type.py +++ b/app/project_management/serializers/project_type.py @@ -2,7 +2,7 @@ from rest_framework import serializers from rest_framework.fields import empty from rest_framework.reverse import reverse -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -88,6 +88,6 @@ class ProjectTypeModelSerializer( class ProjectTypeViewSerializer(ProjectTypeModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) runbook = KnowledgeBaseBaseSerializer( many = False, read_only = True ) diff --git a/app/project_management/tests/functional/project/test_project_serializer.py b/app/project_management/tests/functional/project/test_project_serializer.py index 79195420..24c8b98f 100644 --- a/app/project_management/tests/functional/project/test_project_serializer.py +++ b/app/project_management/tests/functional/project/test_project_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from project_management.serializers.project import ( Project, diff --git a/app/project_management/tests/functional/project/test_project_viewset.py b/app/project_management/tests/functional/project/test_project_viewset.py index 852b0538..93a1b6c8 100644 --- a/app/project_management/tests/functional/project/test_project_viewset.py +++ b/app/project_management/tests/functional/project/test_project_viewset.py @@ -6,7 +6,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/functional/project_milestone/test_project_milestone_serializer.py b/app/project_management/tests/functional/project_milestone/test_project_milestone_serializer.py index 6e575293..53b5cff0 100644 --- a/app/project_management/tests/functional/project_milestone/test_project_milestone_serializer.py +++ b/app/project_management/tests/functional/project_milestone/test_project_milestone_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from project_management.serializers.project_milestone import ( Project, diff --git a/app/project_management/tests/functional/project_milestone/test_project_milestone_viewset.py b/app/project_management/tests/functional/project_milestone/test_project_milestone_viewset.py index 29bf50d2..d158ea0f 100644 --- a/app/project_management/tests/functional/project_milestone/test_project_milestone_viewset.py +++ b/app/project_management/tests/functional/project_milestone/test_project_milestone_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/functional/project_state/test_project_state_serializer.py b/app/project_management/tests/functional/project_state/test_project_state_serializer.py index fd51e5cd..9ea8a544 100644 --- a/app/project_management/tests/functional/project_state/test_project_state_serializer.py +++ b/app/project_management/tests/functional/project_state/test_project_state_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/project_management/tests/functional/project_state/test_project_state_viewset.py b/app/project_management/tests/functional/project_state/test_project_state_viewset.py index c63350b2..3d00a54a 100644 --- a/app/project_management/tests/functional/project_state/test_project_state_viewset.py +++ b/app/project_management/tests/functional/project_state/test_project_state_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/functional/project_type/test_project_type_serializer.py b/app/project_management/tests/functional/project_type/test_project_type_serializer.py index 31b9b487..c442921d 100644 --- a/app/project_management/tests/functional/project_type/test_project_type_serializer.py +++ b/app/project_management/tests/functional/project_type/test_project_type_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/project_management/tests/functional/project_type/test_project_type_viewset.py b/app/project_management/tests/functional/project_type/test_project_type_viewset.py index 431734ab..a2e507ec 100644 --- a/app/project_management/tests/functional/project_type/test_project_type_viewset.py +++ b/app/project_management/tests/functional/project_type/test_project_type_viewset.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project/test_project_api_v2.py b/app/project_management/tests/unit/project/test_project_api_v2.py index 9543410f..ffe451fd 100644 --- a/app/project_management/tests/unit/project/test_project_api_v2.py +++ b/app/project_management/tests/unit/project/test_project_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project/test_project_permission.py b/app/project_management/tests/unit/project/test_project_permission.py index 2706c59d..a1430484 100644 --- a/app/project_management/tests/unit/project/test_project_permission.py +++ b/app/project_management/tests/unit/project/test_project_permission.py @@ -9,7 +9,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project/test_project_permission_api.py b/app/project_management/tests/unit/project/test_project_permission_api.py index 4093e9ce..a51d6095 100644 --- a/app/project_management/tests/unit/project/test_project_permission_api.py +++ b/app/project_management/tests/unit/project/test_project_permission_api.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_milestone/test_project_milestone_api_v2.py b/app/project_management/tests/unit/project_milestone/test_project_milestone_api_v2.py index 4da82091..f4743f82 100644 --- a/app/project_management/tests/unit/project_milestone/test_project_milestone_api_v2.py +++ b/app/project_management/tests/unit/project_milestone/test_project_milestone_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_milestone/test_project_milestone_permission.py b/app/project_management/tests/unit/project_milestone/test_project_milestone_permission.py index 58f155a4..bdf64fce 100644 --- a/app/project_management/tests/unit/project_milestone/test_project_milestone_permission.py +++ b/app/project_management/tests/unit/project_milestone/test_project_milestone_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_milestone/test_project_milestone_permission_api.py b/app/project_management/tests/unit/project_milestone/test_project_milestone_permission_api.py index 8170cff0..1c4999b4 100644 --- a/app/project_management/tests/unit/project_milestone/test_project_milestone_permission_api.py +++ b/app/project_management/tests/unit/project_milestone/test_project_milestone_permission_api.py @@ -8,7 +8,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import Client, TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_milestone/test_unit_projectmilestone_model.py b/app/project_management/tests/unit/project_milestone/test_unit_projectmilestone_model.py index a37acdba..c96d3d3e 100644 --- a/app/project_management/tests/unit/project_milestone/test_unit_projectmilestone_model.py +++ b/app/project_management/tests/unit/project_milestone/test_unit_projectmilestone_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.unit.test_unit_models import ( TenancyObjectInheritedCases diff --git a/app/project_management/tests/unit/project_milestone_notes/test_unit_project_milestone_notes_model.py b/app/project_management/tests/unit/project_milestone_notes/test_unit_project_milestone_notes_model.py index 501a1aec..cbdfa140 100644 --- a/app/project_management/tests/unit/project_milestone_notes/test_unit_project_milestone_notes_model.py +++ b/app/project_management/tests/unit/project_milestone_notes/test_unit_project_milestone_notes_model.py @@ -1,6 +1,6 @@ from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from core.tests.unit.model_notes.test_unit_model_notes_model import ( ModelNotesInheritedCases diff --git a/app/project_management/tests/unit/project_state/test_project_state_api_v2.py b/app/project_management/tests/unit/project_state/test_project_state_api_v2.py index 25845206..ef2cc012 100644 --- a/app/project_management/tests/unit/project_state/test_project_state_api_v2.py +++ b/app/project_management/tests/unit/project_state/test_project_state_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_state/test_project_state_permission.py b/app/project_management/tests/unit/project_state/test_project_state_permission.py index 9aa2145e..c30e7a86 100644 --- a/app/project_management/tests/unit/project_state/test_project_state_permission.py +++ b/app/project_management/tests/unit/project_state/test_project_state_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_state/test_project_state_permission_api.py b/app/project_management/tests/unit/project_state/test_project_state_permission_api.py index dd1716b4..25e9b65e 100644 --- a/app/project_management/tests/unit/project_state/test_project_state_permission_api.py +++ b/app/project_management/tests/unit/project_state/test_project_state_permission_api.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_type/test_project_type_api_v2.py b/app/project_management/tests/unit/project_type/test_project_type_api_v2.py index 9f4617ef..19fd7f89 100644 --- a/app/project_management/tests/unit/project_type/test_project_type_api_v2.py +++ b/app/project_management/tests/unit/project_type/test_project_type_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_type/test_project_type_permission.py b/app/project_management/tests/unit/project_type/test_project_type_permission.py index 75ec40de..1308760d 100644 --- a/app/project_management/tests/unit/project_type/test_project_type_permission.py +++ b/app/project_management/tests/unit/project_type/test_project_type_permission.py @@ -10,7 +10,7 @@ import pytest import unittest import requests -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/project_management/tests/unit/project_type/test_project_type_permission_api.py b/app/project_management/tests/unit/project_type/test_project_type_permission_api.py index f689bffe..c40b07ad 100644 --- a/app/project_management/tests/unit/project_type/test_project_type_permission_api.py +++ b/app/project_management/tests/unit/project_type/test_project_type_permission_api.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/forms/admin_settings_global.py b/app/settings/forms/admin_settings_global.py index c5bd00e0..dfe86e6e 100644 --- a/app/settings/forms/admin_settings_global.py +++ b/app/settings/forms/admin_settings_global.py @@ -1,7 +1,7 @@ from django import forms from django.db.models import Q -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team_user import TeamUsers from core.forms.common import CommonModelForm diff --git a/app/settings/forms/app_settings.py b/app/settings/forms/app_settings.py index 83f19782..bda12b01 100644 --- a/app/settings/forms/app_settings.py +++ b/app/settings/forms/app_settings.py @@ -1,7 +1,7 @@ from django import forms from django.db.models import Q -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team_user import TeamUsers from core.forms.common import CommonModelForm diff --git a/app/settings/forms/external_links.py b/app/settings/forms/external_links.py index 648dda8c..945f0382 100644 --- a/app/settings/forms/external_links.py +++ b/app/settings/forms/external_links.py @@ -2,7 +2,7 @@ from django import forms from django.urls import reverse -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team_user import TeamUsers from app import settings diff --git a/app/settings/forms/user_settings.py b/app/settings/forms/user_settings.py index fca139ac..2fc01100 100644 --- a/app/settings/forms/user_settings.py +++ b/app/settings/forms/user_settings.py @@ -1,7 +1,7 @@ from django import forms from django.db.models import Q -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team_user import TeamUsers from core.forms.common import CommonModelForm diff --git a/app/settings/migrations/0012_alter_appsettings_global_organization_and_more.py b/app/settings/migrations/0012_alter_appsettings_global_organization_and_more.py new file mode 100644 index 00000000..028d1267 --- /dev/null +++ b/app/settings/migrations/0012_alter_appsettings_global_organization_and_more.py @@ -0,0 +1,36 @@ +# Generated by Django 5.1.9 on 2025-05-14 13:48 + +import access.models.tenancy +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('access', '0008_alter_tenant_options_alter_entity_organization_and_more'), + ('settings', '0011_appsettingshistory_externallinkhistory'), + ] + + operations = [ + migrations.AlterField( + model_name='appsettings', + name='global_organization', + field=models.ForeignKey(blank=True, default=None, help_text='Tenant global items will be created in', null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='global_organization', to='access.tenant', verbose_name='Global Tenant'), + ), + migrations.AlterField( + model_name='appsettings', + name='owner_organization', + field=models.ForeignKey(blank=True, default=None, help_text='Tenant the settings belong to', null=True, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='owner_organization', to='access.tenant'), + ), + migrations.AlterField( + model_name='externallink', + name='organization', + field=models.ForeignKey(help_text='Tenancy this belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='access.tenant', validators=[access.models.tenancy.TenancyObject.validatate_organization_exists], verbose_name='Tenant'), + ), + migrations.AlterField( + model_name='usersettings', + name='default_organization', + field=models.ForeignKey(blank=True, default=None, help_text='Users default Tenant', null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='access.tenant', verbose_name='Default Tenant'), + ), + ] diff --git a/app/settings/models/app_settings.py b/app/settings/models/app_settings.py index cbb18e36..acaa61d9 100644 --- a/app/settings/models/app_settings.py +++ b/app/settings/models/app_settings.py @@ -3,7 +3,7 @@ from django.db import models from rest_framework.reverse import reverse from access.fields import * -from access.models.organization import Organization +from access.models.tenant import Tenant from core.lib.feature_not_used import FeatureNotUsed from core.mixin.history_save import SaveHistory @@ -56,9 +56,9 @@ class AppSettings(AppSettingsCommonFields, SaveHistory): owner_organization = models.ForeignKey( - Organization, + Tenant, blank= True, - help_text = 'Organization the settings belong to', + help_text = 'Tenant the settings belong to', default = None, null = True, on_delete=models.SET_DEFAULT, @@ -101,14 +101,14 @@ class AppSettings(AppSettingsCommonFields, SaveHistory): ) global_organization = models.ForeignKey( - Organization, + Tenant, on_delete=models.SET_DEFAULT, blank= True, default = None, - help_text = 'Organization global items will be created in', + help_text = 'Tenant global items will be created in', null = True, related_name = 'global_organization', - verbose_name = 'Global Organization' + verbose_name = 'Global Tenant' ) table_fields: list = [] diff --git a/app/settings/models/user_settings.py b/app/settings/models/user_settings.py index 87d59fd2..fc076b8a 100644 --- a/app/settings/models/user_settings.py +++ b/app/settings/models/user_settings.py @@ -9,7 +9,7 @@ from django.db.models.signals import post_save from django.dispatch import receiver from access.fields import * -from access.models.organization import Organization +from access.models.tenant import Tenant from core.lib.feature_not_used import FeatureNotUsed @@ -83,13 +83,13 @@ class UserSettings(UserSettingsCommonFields): ) default_organization = models.ForeignKey( - Organization, + Tenant, blank= True, default = None, - help_text = 'Users default Organization', + help_text = 'Users default Tenant', null = True, on_delete=models.SET_DEFAULT, - verbose_name = 'Default Organization' + verbose_name = 'Default Tenant' ) timezone = models.CharField( diff --git a/app/settings/serializers/app_settings.py b/app/settings/serializers/app_settings.py index 41e20e7a..c16b6ab0 100644 --- a/app/settings/serializers/app_settings.py +++ b/app/settings/serializers/app_settings.py @@ -2,7 +2,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from settings.models.app_settings import AppSettings @@ -85,4 +85,4 @@ class AppSettingsModelSerializer(AppSettingsBaseSerializer): class AppSettingsViewSerializer(AppSettingsModelSerializer): - global_organization = OrganizationBaseSerializer( many = False, read_only = True ) + global_organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/settings/serializers/external_links.py b/app/settings/serializers/external_links.py index 5861ebda..356cf16b 100644 --- a/app/settings/serializers/external_links.py +++ b/app/settings/serializers/external_links.py @@ -2,7 +2,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from api.serializers import common @@ -83,4 +83,4 @@ class ExternalLinkModelSerializer( class ExternalLinkViewSerializer(ExternalLinkModelSerializer): - organization = OrganizationBaseSerializer( many = False, read_only = True ) + organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/settings/serializers/user_settings.py b/app/settings/serializers/user_settings.py index 48ee6d55..22093bed 100644 --- a/app/settings/serializers/user_settings.py +++ b/app/settings/serializers/user_settings.py @@ -2,7 +2,7 @@ from rest_framework.reverse import reverse from rest_framework import serializers -from access.serializers.organization import OrganizationBaseSerializer +from access.serializers.organization import TenantBaseSerializer from settings.models.user_settings import UserSettings @@ -87,4 +87,4 @@ class UserSettingsModelSerializer(UserSettingsBaseSerializer): class UserSettingsViewSerializer(UserSettingsModelSerializer): - default_organization = OrganizationBaseSerializer( many = False, read_only = True ) + default_organization = TenantBaseSerializer( many = False, read_only = True ) diff --git a/app/settings/tests/functional/app_settings/test_app_settings_viewset.py b/app/settings/tests/functional/app_settings/test_app_settings_viewset.py index e1c93975..2e0e95db 100644 --- a/app/settings/tests/functional/app_settings/test_app_settings_viewset.py +++ b/app/settings/tests/functional/app_settings/test_app_settings_viewset.py @@ -7,7 +7,7 @@ from django.shortcuts import reverse from django.test import Client, TestCase from django import urls -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/functional/external_links/test_external_link_viewset.py b/app/settings/tests/functional/external_links/test_external_link_viewset.py index dcc392c8..fe283a3f 100644 --- a/app/settings/tests/functional/external_links/test_external_link_viewset.py +++ b/app/settings/tests/functional/external_links/test_external_link_viewset.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/functional/external_links/test_external_links_serializer.py b/app/settings/tests/functional/external_links/test_external_links_serializer.py index ab584bc3..26c8cf81 100644 --- a/app/settings/tests/functional/external_links/test_external_links_serializer.py +++ b/app/settings/tests/functional/external_links/test_external_links_serializer.py @@ -4,7 +4,7 @@ from django.test import TestCase from rest_framework.exceptions import ValidationError -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from app.tests.abstract.mock_view import MockView, User diff --git a/app/settings/tests/functional/user_settings/test_user_settings_viewset.py b/app/settings/tests/functional/user_settings/test_user_settings_viewset.py index 6125b54a..3deb8da2 100644 --- a/app/settings/tests/functional/user_settings/test_user_settings_viewset.py +++ b/app/settings/tests/functional/user_settings/test_user_settings_viewset.py @@ -7,7 +7,7 @@ from django.shortcuts import reverse from django.test import Client, TestCase from django import urls -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/unit/app_settings/test_app_settings_api_v2.py b/app/settings/tests/unit/app_settings/test_app_settings_api_v2.py index 117a6e5e..af93e6cc 100644 --- a/app/settings/tests/unit/app_settings/test_app_settings_api_v2.py +++ b/app/settings/tests/unit/app_settings/test_app_settings_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/unit/app_settings/test_app_settings_permission.py b/app/settings/tests/unit/app_settings/test_app_settings_permission.py index 57ff676a..8e1f4895 100644 --- a/app/settings/tests/unit/app_settings/test_app_settings_permission.py +++ b/app/settings/tests/unit/app_settings/test_app_settings_permission.py @@ -9,7 +9,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import TestCase, Client -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/unit/external_links/test_external_links_api_v2.py b/app/settings/tests/unit/external_links/test_external_links_api_v2.py index 68465e88..81a41de4 100644 --- a/app/settings/tests/unit/external_links/test_external_links_api_v2.py +++ b/app/settings/tests/unit/external_links/test_external_links_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/unit/external_links/test_external_links_permission.py b/app/settings/tests/unit/external_links/test_external_links_permission.py index f001c7ae..f609376d 100644 --- a/app/settings/tests/unit/external_links/test_external_links_permission.py +++ b/app/settings/tests/unit/external_links/test_external_links_permission.py @@ -8,7 +8,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import TestCase -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/unit/user_settings/test_unit_user_settings_model.py b/app/settings/tests/unit/user_settings/test_unit_user_settings_model.py index cc446a54..f7ca23cf 100644 --- a/app/settings/tests/unit/user_settings/test_unit_user_settings_model.py +++ b/app/settings/tests/unit/user_settings/test_unit_user_settings_model.py @@ -9,7 +9,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import TestCase, Client -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/unit/user_settings/test_user_settings_api_v2.py b/app/settings/tests/unit/user_settings/test_user_settings_api_v2.py index 55f13567..d92526bc 100644 --- a/app/settings/tests/unit/user_settings/test_user_settings_api_v2.py +++ b/app/settings/tests/unit/user_settings/test_user_settings_api_v2.py @@ -9,7 +9,7 @@ from django.test import Client, TestCase from rest_framework.relations import Hyperlink -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/app/settings/tests/unit/user_settings/test_user_settings_permissions.py b/app/settings/tests/unit/user_settings/test_user_settings_permissions.py index 3413d5cc..800b2be5 100644 --- a/app/settings/tests/unit/user_settings/test_user_settings_permissions.py +++ b/app/settings/tests/unit/user_settings/test_user_settings_permissions.py @@ -9,7 +9,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import reverse from django.test import TestCase, Client -from access.models.organization import Organization +from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers diff --git a/docs/projects/centurion_erp/index.md b/docs/projects/centurion_erp/index.md index 2406cf32..df910528 100644 --- a/docs/projects/centurion_erp/index.md +++ b/docs/projects/centurion_erp/index.md @@ -51,7 +51,7 @@ Centurion ERP contains the following modules: - [Markdown](./user/core/markdown.md) - - [Multi-Tenant](./user/access/organization.md) + - [Multi-Tenant](./user/access/tenant.md) - [Single Sign-On {SSO}](./user/configuration.md#single-sign-on) diff --git a/docs/projects/centurion_erp/user/access/index.md b/docs/projects/centurion_erp/user/access/index.md index 09c5105a..30be322f 100644 --- a/docs/projects/centurion_erp/user/access/index.md +++ b/docs/projects/centurion_erp/user/access/index.md @@ -6,14 +6,14 @@ template: project.html about: https://gitlab.com/nofusscomputing/infrastructure/configuration-management/centurion_erp --- -The Access module provides the multi-tenancy for this application. Tenancy is organized into organizations, which contain teams which contain users. As part of this module, application permission checking is also conducted. +The Access module provides the multi-tenancy for this application. Tenancy is organized into tenants, which contain teams which contain users. As part of this module, application permission checking is also conducted. ## Components - [Contact / Corporate Directory](./contact.md) -- [Organization](./organization.md) +- [Tenant](./tenant.md) - [Roles](./role.md) @@ -22,10 +22,10 @@ The Access module provides the multi-tenancy for this application. Tenancy is or ## Permission System -The permission system within Centurion ERP is custom and built upon Django's core permission types: add, change, delete and view. For a user to be granted access to perform an action, they must be assigned the permission and have that permission assigned to them as part of the organization they are performing the action in. ALL assigned permissions are limited to the organization the permission is assigned. +The permission system within Centurion ERP is custom and built upon Django's core permission types: add, change, delete and view. For a user to be granted access to perform an action, they must be assigned the permission and have that permission assigned to them as part of the tenant they are performing the action in. ALL assigned permissions are limited to the tenant the permission is assigned. !!! tip - User `A` is in organization `A` and has device view permission. User `A` can view devices in Organization `A` **ONLY**. User `A` although they have the device view permission, can **not** view devices in organization `B`. For User `A` to view devices in organization `B` they would also require the device view permission be assigned to them within organization `B`. + User `A` is in tenant `A` and has device view permission. User `A` can view devices in Organization `A` **ONLY**. User `A` although they have the device view permission, can **not** view devices in tenant `B`. For User `A` to view devices in tenant `B` they would also require the device view permission be assigned to them within tenant `B`. Unlike filesystem based permssions, Centurion ERP permissions are not inclusive, they are mutually exclusive. That is: @@ -42,7 +42,7 @@ The exclusitvity is that each of the permissions listed above, dont include an a ### Gloabl Organization -If the webmaster has setup Centurion ERP to have a [global organization](../settings/app_settings.md#global-organization), as long as the user has the a `view` permission for the model in question in **any** organization, they will be able to view that item within the global organization. This is not the same for the other permissions: `add`, `change` and `delete`. To which they must be granted those permissions within the global organization exclusively. +If the webmaster has setup Centurion ERP to have a [global tenant](../settings/app_settings.md#global-tenant), as long as the user has the a `view` permission for the model in question in **any** tenant, they will be able to view that item within the global tenant. This is not the same for the other permissions: `add`, `change` and `delete`. To which they must be granted those permissions within the global tenant exclusively. !!! tip - User `A` is in organization `A` and the webmaster has setup Centurion to use organization `B` as the global organization. If user `A` has been granted permission `itam.view_software` in organization `A` they will be able to view software within both organization `A` and `B`. + User `A` is in tenant `A` and the webmaster has setup Centurion to use tenant `B` as the global tenant. If user `A` has been granted permission `itam.view_software` in tenant `A` they will be able to view software within both tenant `A` and `B`. diff --git a/docs/projects/centurion_erp/user/access/organization.md b/docs/projects/centurion_erp/user/access/organization.md deleted file mode 100644 index b176ac03..00000000 --- a/docs/projects/centurion_erp/user/access/organization.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Organization -description: Organization Documentation for Centurion ERP by No Fuss Computing -date: 2024-06-17 -template: project.html -about: https://gitlab.com/nofusscomputing/infrastructure/configuration-management/centurion_erp ---- - -An organization is how multi-tenancy is conducted within this application. All data within the application is tied to an organization and only users whom are members of the organization with the correct permission can view that item within an organization. - -!!! warning - Any object within any organization that has been marked as `global`. Any user whom has the correct `view` permission will be able to see the global object. - - _**Note:**: This does not include other items that may be attached to the global object that is itself not marked as global._ - - -## Organization Manager - -An organization manager is to be viewed as the "owner" of an organization. With the exception of editing the organization itself, the manager can conduct **ALL** operations against an organization regardless of their permissions. An orgnization manager does not need any permissions to add, change delete or view a `Team` or `Team User`. This also includes not requiring the `view` permission for an `Organization`. diff --git a/docs/projects/centurion_erp/user/access/team.md b/docs/projects/centurion_erp/user/access/team.md index 5cbbea81..809d00bb 100644 --- a/docs/projects/centurion_erp/user/access/team.md +++ b/docs/projects/centurion_erp/user/access/team.md @@ -6,9 +6,9 @@ template: project.html about: https://gitlab.com/nofusscomputing/infrastructure/configuration-management/centurion_erp --- -A Team is subordinate to an organization and is a way of grouping permissions with users. A team as the name implies is a collection, in this case contains application users-whom once assigned to a team will be granted the permissions of that team. Permission assigned are an _"allowed"_ to conduct that action. It is not possible to add deny permissions +A Team is subordinate to an tenant and is a way of grouping permissions with users. A team as the name implies is a collection, in this case contains application users-whom once assigned to a team will be granted the permissions of that team. Permission assigned are an _"allowed"_ to conduct that action. It is not possible to add deny permissions -Team permission are not application wide, their scope is limited to objects that are a part of the same organization. In addition any object that is marked `is_global` a user with the objects view permission can see that object. +Team permission are not application wide, their scope is limited to objects that are a part of the same tenant. In addition any object that is marked `is_global` a user with the objects view permission can see that object. !!! warning An Organization manager can conduct **ALL** operations against a team regardless of their permissions. diff --git a/docs/projects/centurion_erp/user/access/tenant.md b/docs/projects/centurion_erp/user/access/tenant.md new file mode 100644 index 00000000..a525b80f --- /dev/null +++ b/docs/projects/centurion_erp/user/access/tenant.md @@ -0,0 +1,19 @@ +--- +title: Tenant +description: Tenant Documentation for Centurion ERP by No Fuss Computing +date: 2024-06-17 +template: project.html +about: https://gitlab.com/nofusscomputing/infrastructure/configuration-management/centurion_erp +--- + +An tenant is how multi-tenancy is conducted within this application. All data within the application is tied to an tenant and only users whom are members of the tenant with the correct permission can view that item within an tenant. + +!!! warning + Any object within any tenant that has been marked as `global`. Any user whom has the correct `view` permission will be able to see the global object. + + _**Note:**: This does not include other items that may be attached to the global object that is itself not marked as global._ + + +## Tenant Manager + +A tenant manager is to be viewed as the "owner" of an tenant. With the exception of editing the tenant itself, the manager can conduct **ALL** operations against an tenant regardless of their permissions. An orgnization manager does not need any permissions to add, change delete or view a `Team` or `Team User`. This also includes not requiring the `view` permission for an `Tenant`. diff --git a/docs/projects/centurion_erp/user/itim/cluster.md b/docs/projects/centurion_erp/user/itim/cluster.md index 64cb0190..f99f1f41 100644 --- a/docs/projects/centurion_erp/user/itim/cluster.md +++ b/docs/projects/centurion_erp/user/itim/cluster.md @@ -28,7 +28,7 @@ Within the services the following fields are available: - Name _name of the cluster_ -- [Organization](../access/organization.md) _organization this cluster belongs to_ +- [Tenant](../access/tenant.md) _tenant this cluster belongs to_ - [Nodes](../itam/device.md) _Cluster Nodes_ diff --git a/mkdocs.yml b/mkdocs.yml index e4aaa8c4..332bc0e1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -169,12 +169,12 @@ nav: - projects/centurion_erp/user/access/contact.md - - projects/centurion_erp/user/access/organization.md - - projects/centurion_erp/user/access/role.md - projects/centurion_erp/user/access/team.md + - projects/centurion_erp/user/access/tenant.md + - Accounting: - projects/centurion_erp/user/accounting/index.md