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)
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 )
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)
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')
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()
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
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)
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)