def create(self, request, *args, **kwargs):
     for token in Token.objects.filter(user=request.user):
         token.delete()
     request.user.is_login = False
     request.user.save()
     create_notification(request.user, 'New Logout In Your Account')
     return Response(status=200)
    def update(self, request, *args, **kwargs):
        instance = self.request.user
        serializer = self.get_serializer(instance, data=request.data)
        serializer.is_valid(raise_exception=True)
        self.perform_update(serializer)

        if getattr(instance, '_prefetched_objects_cache', None):
            instance._prefetched_objects_cache = {}
        create_notification(request.user, 'Your Information Was Changed')
        return Response(serializer.data)
 def update(self, request, *args, **kwargs):
     user_id = kwargs.get('pk', None)
     group_list = request.data.get('groups', None)
     if user_id is None or group_list is None:
         return Response(status=status.HTTP_400_BAD_REQUEST)
     user = User.objects.filter(pk=user_id).first()
     groups = Group.objects.filter(id__in=group_list)
     user.groups.set(groups)
     user.save()
     create_notification(user, 'Your Permissions Was Changed')
     return Response(status=status.HTTP_200_OK, data=UserAdminSerializer(user).data)
 def post(self, request, *args, **kwargs):
     serializer = self.serializer_class(data=request.data,
                                        context={'request': request})
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data['user']
     token, created = Token.objects.get_or_create(user=user)
     user.is_login = True
     user.save()
     create_notification(user, 'New Login In Your Account')
     return Response({
         'token': token.key,
         'user': UserSerializer(user).data
     })
 def create(self, request, *args, **kwargs):
     validated_data = request.data
     email = validated_data.get('email', '')
     if len(User.objects.filter(email=email)) > 0:
         return Response({'errors': 'userNameUsed'})
     country = validated_data.get('country', None)
     if country is not None:
         validated_data.pop('country')
     user = User.objects.create_user(**validated_data)
     if country is not None and Country.objects.filter(name=country['name']) is not None and len(
             Country.objects.filter(name=country['name'])) > 0:
         user.country_id = Country.objects.filter(name=country['name'])[0].id
     if Group.objects.filter(name='User').first() is not None:
         user.groups.add(Group.objects.get(name='User'))
     user.save()
     create_notification(user, 'Welcome In Coins Gate')
     return Response(UserSerializer(user).data, status=status.HTTP_201_CREATED)
 def post(self, request, *args, **kwargs):
     password = request.data.get('newPassword', None)
     current_password = request.data.get('currentPassword', None)
     user = request.user
     errors = []
     if password is None:
         errors.append({'newPassword': '******'})
     if current_password is None:
         errors.append({'currentPassword': '******'})
     if not user.check_password(current_password):
         errors.append({'currentPassword': '******'})
     if len(errors) < 1:
         user.set_password(password)
         user.save()
         create_notification(user, 'Your Password Was Changed')
         return Response(status=200, data={})
     return Response(status=400, data={'errors': errors})
Exemple #7
0
 def create(self, request, *args, **kwargs):
     user = User.objects.filter(pk=int(request.data['user'])).first()
     amount = float(request.data['amount'])
     invoice = Invoice.objects.create(amount=amount, user=user,
                                      action=request.data['action'], details=request.data.get('details', ''))
     if request.data['action'] == 'A':
         user.balance += amount
         create_notification(user, 'New Balance +{} Has Been Added'.format(amount))
     if request.data['action'] == 'R':
         user.balance -= amount
         create_notification(user, 'New Balance -{} Has Been Removed'.format(amount))
     if request.data['action'] == 'S':
         user.balance = amount
         create_notification(user, 'Your Balance Has Been Set to {}'.format(amount))
     user.save()
     return Response(InvoiceSerializer(invoice).data, status=status.HTTP_201_CREATED)