mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.8 KiB
52 lines
1.8 KiB
from django.utils.translation import gettext_lazy as _ |
|
from rest_framework import serializers |
|
from rest_framework.serializers import ModelSerializer |
|
|
|
from .models import Organization |
|
from .utils import get_current_org |
|
|
|
|
|
class ResourceStatisticsSerializer(serializers.Serializer): |
|
users_amount = serializers.IntegerField(required=False, label=_('Users amount')) |
|
groups_amount = serializers.IntegerField(required=False, label=_('User groups amount')) |
|
|
|
assets_amount = serializers.IntegerField(required=False, label=_('Assets amount')) |
|
nodes_amount = serializers.IntegerField(required=False, label=_('Nodes amount')) |
|
domains_amount = serializers.IntegerField(required=False, label=_('Domains amount')) |
|
gateways_amount = serializers.IntegerField(required=False, label=_('Gateways amount')) |
|
|
|
asset_perms_amount = serializers.IntegerField(required=False, label=_('Asset permissions amount')) |
|
|
|
|
|
class OrgSerializer(ModelSerializer): |
|
resource_statistics = ResourceStatisticsSerializer(source='resource_statistics_cache', read_only=True) |
|
|
|
class Meta: |
|
model = Organization |
|
fields_mini = ['id', 'name'] |
|
fields_small = fields_mini + [ |
|
'resource_statistics', |
|
'is_default', 'is_root', 'internal', |
|
'date_created', 'created_by', |
|
'comment', 'created_by', |
|
] |
|
|
|
fields_m2m = [] |
|
fields = fields_small + fields_m2m |
|
read_only_fields = ['created_by', 'date_created'] |
|
|
|
|
|
class CurrentOrgSerializer(ModelSerializer): |
|
class Meta: |
|
model = Organization |
|
fields = ['id', 'name', 'is_default', 'is_root', 'comment'] |
|
|
|
|
|
class CurrentOrgDefault: |
|
requires_context = False |
|
|
|
def __call__(self, *args): |
|
return get_current_org() |
|
|
|
def __repr__(self): |
|
return '%s()' % self.__class__.__name__
|
|
|