refactor(access): Rename model Organization -> Tenant

ref: #756 #505
This commit is contained in:
2025-05-14 23:22:48 +09:30
parent 2e49de8573
commit 2d7335ff85
348 changed files with 1107 additions and 651 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'
),
]

View File

@ -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'),
),
]

View File

@ -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

View File

@ -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

View File

@ -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
)

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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()

View File

@ -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

View File

@ -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'
)

161
app/access/models/tenant.py Normal file
View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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 )

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
)

View File

@ -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'
menu_entry_id = 'tenant'

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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 (

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'
)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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')

View File

@ -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

View File

@ -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):

View File

@ -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 (