Пример #1
0
    def create(self, request, *args, **kwargs):
        """
        Creates the FeatureTypeGroup and Connect the FeatureTypeGroup to FeatureType
        """
        featureTypes = []
        returnFormat = {}

        if not UserClass.UserIsSuperUser(
                request.user) and not request.data.get(
                    'org') and request.user.get('organization'):
            request.data['org'] = request.user.get('organization')
        elif not UserClass.UserIsSuperUser(request.user) and not (
                request.data.get('org') == request.user.get('organization')):
            return Response(
                {
                    'error': True,
                    'success': False,
                    'errorList':
                    "associating featuretypegroup with diffrenet organization",
                    'data': []
                },
                status=status.HTTP_400_BAD_REQUEST)

        if request.data.get('featureTypes'):
            featureTypes = FeatureType.objects.filter(
                uid__in=request.data.get('featureTypes'))
            if not featureTypes.count() == len(
                    request.data.get('featureTypes')):
                return Response(
                    {
                        'error': True,
                        'success': False,
                        'errorList':
                        "FeaturesTypes either of them doesnot exist",
                        'data': []
                    },
                    status=status.HTTP_404_NOT_FOUND)

        # create the FTG
        serializer = self.get_serializer(data=request.data)
        if serializer.is_valid():
            instance = self.perform_create(serializer)
            headers = self.get_success_headers(serializer.data)
            if featureTypes:
                featureTypes.update(featureTypeGroup=instance)
            data = self.get_serializer(instance).data
            return Response(data,
                            status=status.HTTP_201_CREATED,
                            headers=headers)
        else:
            returnFormat['error'] = True
            returnFormat['errorList'] = serializer.errors
        return Response(returnFormat, status=status.HTTP_400_BAD_REQUEST)
Пример #2
0
    def get(self, request):

        user = request.user
        org = Organization.objects.filter(Q(uid = user['organization']) | Q(name =user['organization']))
        if  org.exists():
            # User is_manager and is_owner
            if UserClass.UserIsManagerOrIsOwner(user):
                projects = OrganizationProject.objects.filter(group__organization__in = org )
                serializers = OrderedListProjectGroupByGroupSerializer(projects,many = True )
                return Response(serializers.data,status = status.HTTP_200_OK )

            # get the Groups for which the user has acess
            groupsUids = OrganizationGroupMethods.GetGroupUidsUserHasWritePermission(user,org)

            # get the projects for which the user has acess
            projectUids = OrganizationProjectMethods.GetProjectUidsUserHasWritePermission(user,org)

            projects = OrganizationProject.objects.filter(Q(group__uid__in = groupsUids) | Q(uid__in =projectUids) )
            serializers = OrderedListProjectGroupByGroupSerializer(projects,many = True )
            return Response(serializers.data,status = status.HTTP_200_OK )

            # paginator = CustomPaginator()
            # response = paginator.generate_response(tables, ViewTableSerializer, request)
            # return response

        return Response("organization doesnot exist",status = status.HTTP_400_BAD_REQUEST )
Пример #3
0
    def create(self, request, *args, **kwargs):
        returnFormat = {}

        if not UserClass.UserIsSuperUser(
                request.user) and not request.data.get(
                    'org') and request.user.get('organization'):
            request.data['org'] = request.user.get('organization')
        elif not UserClass.UserIsSuperUser(request.user) and not (
                request.data.get('org') == request.user.get('organization')):
            return Response(
                {
                    'error': True,
                    'success': False,
                    'errorList':
                    "associating featuretypegroup with different organization",
                    'data': []
                },
                status=status.HTTP_400_BAD_REQUEST)

        if request.data.get('featureTypeGroup'):
            ftg = FeatureTypeGroup.objects.filter(
                uid=request.data.get('featureTypeGroup'))
            if ftg.exists():
                ftgObj = ftg.first()
                request.data['featureTypeGroup'] = ftgObj.pk
            else:
                returnFormat['error'] = True
                returnFormat[
                    'errorList'] = "Feature Type Group not found with uid"
                return Response(returnFormat, status=status.HTTP_404_NOT_FOUND)

        serializer = self.get_serializer(data=request.data)
        if serializer.is_valid():
            self.perform_create(serializer)
        else:
            returnFormat['error'] = True
            returnFormat['errorList'] = serializer.errors
            return Response(returnFormat, status=status.HTTP_400_BAD_REQUEST)

        headers = self.get_success_headers(serializer.data)
        return Response(serializer.data,
                        status=status.HTTP_201_CREATED,
                        headers=headers)
Пример #4
0
    def get_queryset(self, *args, **kwargs):

        queryset = self.queryset
        user = self.request.user

        if UserClass.UserIsSuperUser(user):
            return queryset.order_by('org')
        else:
            return queryset.filter(
                Q(org__uid=user['organization'])
                | Q(owner__uid=user['uid'])).order_by('-updated')
Пример #5
0
 def get_queryset(self, *args, **kwargs):
     filters = {}
     queryset =  self.queryset.order_by('organization')
     user = self.request.user
     if UserClass.UserIsSuperUser(user):
         return queryset
     else:
         orgObjs = Organization.objects.filter(Q(uid = user.get('organization')))
         if orgObjs.exists():
             filters['organization'] = orgObjs.first()
             return self.queryset.filter(**filters)
     return ContainerView.objects.none() 
Пример #6
0
    def get_queryset(self, *args, **kwargs):

        queryset = self.queryset
        user = self.request.user

        if UserClass.UserIsSuperUser(user):
            return queryset.order_by('project')
        else:
            return queryset.filter(
                Q(project__group__organization__uid=user['organization'])
                | Q(owner__uid=user['uid']))
        return queryset
Пример #7
0
    def list(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())
        userUid = request.user.get('uid')

        if UserClass.UserIsSuperUser(request.user) or request.user.get('is_manager') or request.user.get('is_owner') :
            filteredQueryset = queryset
        else:
            filterDict = [{'uid': userUid}]
            filteredQueryset_1 = queryset.filter(Q(readLabels__contains = filterDict) | Q(readUsers__contains = filterDict)| Q(writeUsers__contains = filterDict) | Q(writeLabels__contains = filterDict) | Q(owner__uid = userUid))
            filteredQueryset_2 = queryset.filter(Q(organization__readLabels__contains = filterDict) | Q(organization__readUsers__contains = filterDict)| Q(organization__writeUsers__contains = filterDict) | Q(organization__writeLabels__contains = filterDict))
            filteredQueryset = filteredQueryset_1 | filteredQueryset_2
        serializer = self.get_serializer(filteredQueryset, many=True)
        return Response(serializer.data)
Пример #8
0
    def update(self, request, *args, **kwargs):
        """
        Updates the FeatureTypeGroup and update the FeatureTypeGroup in model FeatureType
        """

        featureTypes = []
        partial = kwargs.pop('partial', False)

        if not UserClass.UserIsSuperUser(
                request.user) and request.data.get('org'):
            request.data.pop('org')

        try:
            uid = kwargs.get('uid', None)
            instance = self.get_queryset().get(uid=uid)

            # May raise a permission denied
            self.check_object_permissions(self.request, instance)

        except self.get_queryset().model.DoesNotExist:
            return Response(
                {
                    'error': True,
                    'errorList': 'object wit uid doesnot exist',
                    'success': False,
                    'data': []
                },
                status=status.HTTP_404_NOT_FOUND)

        # updating the FTG
        serializer = self.get_serializer(instance,
                                         data=request.data,
                                         partial=partial)
        if serializer.is_valid():
            self.perform_update(serializer)
            data = self.get_serializer(instance).data
            return Response(data, status=status.HTTP_200_OK)

        if getattr(instance, '_prefetched_objects_cache', None):
            # If 'prefetch_related' has been applied to a queryset, we need to
            # forcibly invalidate the prefetch cache on the instance.
            instance._prefetched_objects_cache = {}

        return Response({
            'error': True,
            'errorList': serializer.errors
        },
                        status=status.HTTP_400_BAD_REQUEST)