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,10 +9,21 @@ logger = get_logger(__name__)
|
|||
|
||||
|
||||
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
|
||||
id: str
|
||||
|
||||
def get_members(self):
|
||||
return self.members.all().distinct()
|
||||
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()
|
||||
|
||||
def add_member(self, user, role=None):
|
||||
from rbac.builtin import BuiltinRole
|
||||
|
@ -72,12 +83,6 @@ class Organization(OrgRoleMixin, JMSBaseModel):
|
|||
'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
|
||||
|
||||
class Meta:
|
||||
|
|
|
@ -138,7 +138,7 @@ class Applet(JMSBaseModel):
|
|||
name = manifest['name']
|
||||
instance = cls.objects.filter(name=name).first()
|
||||
serializer = AppletSerializer(instance=instance, data=manifest)
|
||||
serializer.is_valid()
|
||||
serializer.is_valid(raise_exception=True)
|
||||
instance = serializer.save(builtin=builtin)
|
||||
instance.load_platform_if_need(path)
|
||||
|
||||
|
|
|
@ -27,7 +27,8 @@ class AppletPublicationSerializer(serializers.ModelSerializer):
|
|||
class AppletSerializer(serializers.ModelSerializer):
|
||||
icon = serializers.ReadOnlyField(label=_("Icon"))
|
||||
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:
|
||||
model = Applet
|
||||
|
|
Loading…
Reference in New Issue