提交 8f7ae26b 编写于 作者: baltery's avatar baltery

fix: 暂存

上级 865df56b
...@@ -106,11 +106,8 @@ class Organization(models.Model): ...@@ -106,11 +106,8 @@ class Organization(models.Model):
else: else:
return '' return ''
def org_auditors(self):
return self.members.filter(role=OrganizationMembers.ROLE_AUDITOR)
def get_org_auditors(self): def get_org_auditors(self):
return self.org_auditors() return self.members.filter(role=OrganizationMembers.ROLE_AUDITOR)
def get_org_members(self, role=None): def get_org_members(self, role=None):
from users.models import User from users.models import User
...@@ -138,21 +135,19 @@ class Organization(models.Model): ...@@ -138,21 +135,19 @@ class Organization(models.Model):
return self.id not in (self.DEFAULT_NAME, self.ROOT_ID, self.SYSTEM_ID) return self.id not in (self.DEFAULT_NAME, self.ROOT_ID, self.SYSTEM_ID)
@classmethod @classmethod
def get_user_joined_orgs(cls, user, role=None, role_in=None): def get_user_joined_orgs(cls, user, roles=None):
if user.is_anonymous: if user.is_anonymous:
return cls.objects.none() return cls.objects.none()
kwargs = {'user': user} kwargs = {'user': user}
if role: if roles:
kwargs['role'] = role kwargs['role__in'] = roles
elif role_in:
kwargs['role__in'] = role_in
orgs_id = OrganizationMembers.objects.filter(**kwargs).values_list('org', flat=True) orgs_id = OrganizationMembers.objects.filter(**kwargs).values_list('org', flat=True)
return cls.objects.filter(id__in=orgs_id) return cls.objects.filter(id__in=orgs_id)
@classmethod @classmethod
def get_user_admin_or_audit_orgs(cls, user): def get_user_admin_or_audit_orgs(cls, user):
roles = [OrganizationMembers.ROLE_ADMIN, OrganizationMembers.ROLE_AUDITOR] roles = [OrganizationMembers.ROLE_ADMIN, OrganizationMembers.ROLE_AUDITOR]
return cls.get_user_joined_orgs(role_in=roles) return cls.get_user_joined_orgs(user, roles=roles)
@classmethod @classmethod
def default(cls): def default(cls):
......
...@@ -13,12 +13,9 @@ class OrgSerializer(ModelSerializer): ...@@ -13,12 +13,9 @@ class OrgSerializer(ModelSerializer):
fields_mini = ['id', 'name'] fields_mini = ['id', 'name']
fields_small = fields_mini + ['comment', 'created_by', 'date_created'] fields_small = fields_mini + ['comment', 'created_by', 'date_created']
fields = fields_small fields = fields_small
field_m2m = ['members']
read_only_fields = ['created_by', 'date_created'] read_only_fields = ['created_by', 'date_created']
extra_kwargs = {
'admins': {'write_only': True},
'users': {'write_only': True},
'auditors': {'write_only': True},
}
class OrgReadSerializer(ModelSerializer): class OrgReadSerializer(ModelSerializer):
admins_amount = serializers.SlugRelatedField(slug_field='name', many=True, read_only=True) admins_amount = serializers.SlugRelatedField(slug_field='name', many=True, read_only=True)
...@@ -63,6 +60,3 @@ class OrgRetrieveSerializer(OrgReadSerializer): ...@@ -63,6 +60,3 @@ class OrgRetrieveSerializer(OrgReadSerializer):
admins = serializers.PrimaryKeyRelatedField(many=True, read_only=True) admins = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
auditors = serializers.PrimaryKeyRelatedField(many=True, read_only=True) auditors = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
users = serializers.PrimaryKeyRelatedField(many=True, read_only=True) users = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta(OrgReadSerializer.Meta):
pass
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册