mirror of https://github.com/jumpserver/jumpserver
Merge pull request #10686 from jumpserver/pr@dev@perf_applet_import
perf: 优化 applet 导入pull/10697/head
commit
aee20a6c05
|
@ -9,9 +9,20 @@ logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class OrgRoleMixin:
|
class OrgRoleMixin:
|
||||||
|
ROOT_ID = '00000000-0000-0000-0000-000000000000'
|
||||||
|
ROOT_NAME = _('GLOBAL')
|
||||||
|
DEFAULT_ID = '00000000-0000-0000-0000-000000000002'
|
||||||
|
DEFAULT_NAME = _('DEFAULT')
|
||||||
|
SYSTEM_ID = '00000000-0000-0000-0000-000000000004'
|
||||||
|
SYSTEM_NAME = _('SYSTEM')
|
||||||
members: models.Manager
|
members: models.Manager
|
||||||
|
id: str
|
||||||
|
|
||||||
def get_members(self):
|
def get_members(self):
|
||||||
|
from users.models import User
|
||||||
|
if self.id == self.ROOT_ID:
|
||||||
|
return User.objects.all().exclude(is_service_account=True)
|
||||||
|
else:
|
||||||
return self.members.all().distinct()
|
return self.members.all().distinct()
|
||||||
|
|
||||||
def add_member(self, user, role=None):
|
def add_member(self, user, role=None):
|
||||||
|
@ -72,12 +83,6 @@ class Organization(OrgRoleMixin, JMSBaseModel):
|
||||||
'users.User', related_name='orgs', through='rbac.RoleBinding', through_fields=('org', 'user')
|
'users.User', related_name='orgs', through='rbac.RoleBinding', through_fields=('org', 'user')
|
||||||
)
|
)
|
||||||
|
|
||||||
ROOT_ID = '00000000-0000-0000-0000-000000000000'
|
|
||||||
ROOT_NAME = _('GLOBAL')
|
|
||||||
DEFAULT_ID = '00000000-0000-0000-0000-000000000002'
|
|
||||||
DEFAULT_NAME = _('DEFAULT')
|
|
||||||
SYSTEM_ID = '00000000-0000-0000-0000-000000000004'
|
|
||||||
SYSTEM_NAME = _('SYSTEM')
|
|
||||||
orgs_mapping = None
|
orgs_mapping = None
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
@ -138,7 +138,7 @@ class Applet(JMSBaseModel):
|
||||||
name = manifest['name']
|
name = manifest['name']
|
||||||
instance = cls.objects.filter(name=name).first()
|
instance = cls.objects.filter(name=name).first()
|
||||||
serializer = AppletSerializer(instance=instance, data=manifest)
|
serializer = AppletSerializer(instance=instance, data=manifest)
|
||||||
serializer.is_valid()
|
serializer.is_valid(raise_exception=True)
|
||||||
instance = serializer.save(builtin=builtin)
|
instance = serializer.save(builtin=builtin)
|
||||||
instance.load_platform_if_need(path)
|
instance.load_platform_if_need(path)
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,8 @@ class AppletPublicationSerializer(serializers.ModelSerializer):
|
||||||
class AppletSerializer(serializers.ModelSerializer):
|
class AppletSerializer(serializers.ModelSerializer):
|
||||||
icon = serializers.ReadOnlyField(label=_("Icon"))
|
icon = serializers.ReadOnlyField(label=_("Icon"))
|
||||||
type = LabeledChoiceField(choices=Applet.Type.choices, label=_("Type"))
|
type = LabeledChoiceField(choices=Applet.Type.choices, label=_("Type"))
|
||||||
edition = LabeledChoiceField(choices=Applet.Edition.choices, label=_("Edition"))
|
edition = LabeledChoiceField(choices=Applet.Edition.choices, label=_("Edition"), required=False,
|
||||||
|
default=Applet.Edition.community)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Applet
|
model = Applet
|
||||||
|
|
Loading…
Reference in New Issue