예제 #1
0
 def all(self):
     kwargs = self.get_annotate()
     filters = self.get_filter()
     qs = self.model.objects.all().annotate(**kwargs)
     if current_org.org_id() is not None:
         filters['org_id'] = current_org.org_id()
     qs = qs.filter(**filters)
     qs = self.qs_to_values(qs)
     return qs
예제 #2
0
    def get_cache_key(self, org_id=None):
        if org_id is None:
            org_id = current_org.org_id()

        key = self.user_tree_cache_key.format(org_id, self.obj_id,
                                              self._filter_id)
        return key
 def get_queryset(self):
     queryset = super().get_queryset()
     org_id = current_org.org_id()
     if org_id is not None:
         queryset = queryset.filter(assetpermission__org_id=org_id)
     queryset = queryset.annotate(assetpermission_display=F('assetpermission__name'))
     return queryset
예제 #4
0
 def get_queryset(self):
     queryset = super().get_queryset()
     org_id = current_org.org_id()
     if org_id is not None:
         queryset = queryset.filter(
             **{f'{self.from_field}__org_id': org_id})
     return queryset
예제 #5
0
파일: node.py 프로젝트: wangwd123/neu-jump
    def tree(cls):
        org_id = current_org.org_id()
        t = cls.get_local_tree_cache(org_id)

        if t is None:
            t = TreeCache.new()
            cls._org_tree_map[org_id] = t
        return t.get()
예제 #6
0
 def get_queryset(self):
     queryset = self.model.objects.all()
     org_id = current_org.org_id()
     if org_id is not None:
         queryset = queryset.filter(databaseapppermission__org_id=org_id)
     queryset = queryset.annotate(
         databaseapppermission_display=F('databaseapppermission__name'))
     return queryset
예제 #7
0
 def get_queryset(self):
     queryset = self.model.objects.all()
     org_id = current_org.org_id()
     if org_id is not None:
         queryset = queryset.filter(systemuser__org_id=org_id)
     queryset = queryset.annotate(
         systemuser_display=Concat(F('systemuser__name'), Value('('),
                                   F('systemuser__username'), Value(')')))
     return queryset
예제 #8
0
    def invite(self, request):
        data = request.data
        if not isinstance(data, list):
            data = [request.data]
        if not current_org or not current_org.is_real():
            error = {"error": "Not a valid org"}
            return Response(error, status=400)

        serializer_cls = self.get_serializer_class()
        serializer = serializer_cls(data=data, many=True)
        serializer.is_valid(raise_exception=True)
        validated_data = serializer.validated_data
        for i in validated_data:
            i['org_id'] = current_org.org_id()
        relations = [OrganizationMember(**i) for i in validated_data]
        OrganizationMember.objects.bulk_create(relations, ignore_conflicts=True)
        return Response(serializer.data, status=201)
예제 #9
0
 def get_queryset(self):
     queryset = super().get_queryset()
     if current_org.is_root():
         return queryset
     queryset = queryset.filter(run_as__org_id=current_org.org_id())
     return queryset
예제 #10
0
 def expire_org_tree_cache(cls, org_id=None):
     if org_id is None:
         org_id = current_org.org_id()
     key = cls.user_tree_cache_key.format(org_id, '*', '1')
     key = key.replace('_1', '')
     cache.delete_pattern(key)
예제 #11
0
 def get_queryset(self):
     queryset = super().get_queryset()
     if not current_org.is_root():
         org_id = current_org.org_id()
         queryset = queryset.filter(**{f'{self.from_field}__org_id': org_id})
     return queryset