Пример #1
0
    def create(self, request):
        LOGGER.debug("Creating a new user")

        serializer = UserSerializer(data=request.data)

        if serializer.is_valid():
            myuser = {}
            myuser["username"] = serializer.data["username"]
            myuser["password"] = serializer.data["password"]
            # optional fields
            if "first_name" in serializer.data and serializer.data[
                    "first_name"]:
                myuser["first_name"] = serializer.data["first_name"]
            if "last_name" in serializer.data and serializer.data["last_name"]:
                myuser["last_name"] = serializer.data["last_name"]
            if "email" in serializer.data and serializer.data["email"]:
                myuser["email"] = serializer.data["email"]

            user = create_user(myuser)

            serializer = UserSerializer(user)
            return Response(serializer.data, status.HTTP_201_CREATED)

        else:
            return Response(serializer.errors, status.HTTP_400_BAD_REQUEST)
Пример #2
0
def myuser(request, pk):
    try:
        user = User.objects.get(username=pk)
        serializer = UserSerializer(user)
        return Response(serializer.data)
    except Exception as e:
        return Response(str(e), status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #3
0
def admin_users_list_view(request):
    if request.method == 'GET':
        role = 0
        try:
            role = int(request.GET.get('role', 0))
        except:
            pass
        if role == 0:
            users = User.objects.all()
        else:
            users = User.objects.filter(user_type=role)
        return Response(data=UserSerializer(users, many=True).data,
                        status=status.HTTP_200_OK)
    elif request.method == 'POST':
        username = request.data['username']
        password = request.data['password']
        user = User.objects.create_user(username=username,
                                        email='',
                                        password=password)
        try:
            first_name = request.data.get('first_name', '')
            last_name = request.data.get('last_name', '')
            user.first_name = first_name
            user.last_name = last_name
        except:
            pass
        user.email = request.data.get('email', '*****@*****.**')
        user.phone = request.data.get('phone', '+996 700 121212')
        user.user_type = int(request.data.get('user_type', 2))
        user.save()
        return Response(status=status.HTTP_201_CREATED)
Пример #4
0
    def update(self, request, pk=None):
        """>>>Updating user information"""

        serializer = UserUpdateSerializer(data=request.data)
        if serializer.is_valid():

            post = User.objects.get(id=pk)

            if post:

                check_permission(request, post, 'update')

                if "first_name" in serializer.data and serializer.data[
                        "first_name"]:

                    post.first_name = serializer.data["first_name"]

                if "last_name" in serializer.data and serializer.data[
                        "last_name"]:
                    post.last_name = serializer.data["last_name"]

                post.save()

                serializer = UserSerializer(post)

                return Response(serializer.data,
                                status=status.HTTP_202_ACCEPTED)
            else:
                msg = {"error": 404, "message": "User could not be found"}
                return Response(msg, status=status.HTTP_404_NOT_FOUND)

        else:
            msg = {"error": 400, "message": serializer.errors}
            return Response(msg, status=status.HTTP_400_BAD_REQUEST)
Пример #5
0
 def get(self, request, format=None):
     try:
         queryset = User.objects.all()
         serializer = UserSerializer(queryset, many=True)
         return Response(serializer.data)
     except Exception as e:
         return Response(str(e),
                         status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #6
0
    def create(self, request):
        LOGGER.debug("Creating a new user")

        serializer = UserSerializer(data=request.data)

        if serializer.is_valid():
            myuser = {}
            myuser["username"] = serializer.data["username"]
            myuser["password"] = serializer.data["password"]
            # optional fields
            if "first_name" in serializer.data and serializer.data["first_name"]:
                myuser["first_name"] = serializer.data["first_name"]
            if "last_name" in serializer.data and serializer.data["last_name"]:
                myuser["last_name"] = serializer.data["last_name"]
            if "email" in serializer.data and serializer.data["email"]:
                myuser["email"] = serializer.data["email"]

            user = create_user(myuser)

            serializer = UserSerializer(user)
            return Response(serializer.data, status.HTTP_201_CREATED)

        else:
            return Response(serializer.errors, status.HTTP_400_BAD_REQUEST)
Пример #7
0
    def retrieve(self, request, pk=None):
        """
            Retrieving a task
        """

        post = User.objects.get(id=pk)

        if post:

            check_permission(request, post, 'view')

            serializer = UserSerializer(post)
            return Response(serializer.data)

        else:
            msg = {"error": 404, "message": "User could not be found"}
            return Response(msg, status=status.HTTP_404_NOT_FOUND)
Пример #8
0
def login(request):
    result = {}
    try:
        user = User.objects.get(username=request.data['username'])
        if user.check_password(request.data['password']):
            user.backend = 'mongoengine.django.auth.MongoEngineBackend'
            token = MongoToken.objects.create(user=user)
            serializer = UserSerializer(user)
            result = {
                'result': True,
                'message': "Login completed.",
                'data': {
                    'user': serializer.data,
                    'token': token.key
                }
            }
        else:
            result = {'result': False, 'message': "Incorrect password."}
        return Response(result)
    except Exception as e:
        return Response(str(e), status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #9
0
class DocumentsSerializer(serializers.ModelSerializer):
    user = UserSerializer()
    department = DepartmentSerializer()
    brand = BrandAdminDetailedSerializer()
    products = serializers.SerializerMethodField()
    status = serializers.SerializerMethodField()
    no_stock_or_price = serializers.SerializerMethodField()

    class Meta:
        model = Document
        fields = ('id', 'updated_at', 'user', 'step', 'status', 'department',
                  'brand', 'products', 'no_stock_or_price')

    def get_no_stock_or_price(self, obj):
        count = OriginalProduct.objects.filter(
            Q(original_price=0) | Q(stock=False),
            document_product__document=obj).count()
        return count

    def get_products(self, obj):
        return DocumentProduct.objects.filter(document=obj).count()

    def get_status(self, obj):
        return obj.status
Пример #10
0
class DocumentSerializer(serializers.ModelSerializer):
    user = UserSerializer()
    department = serializers.SerializerMethodField()
    brand = serializers.SerializerMethodField()
    products = serializers.SerializerMethodField()
    status = serializers.SerializerMethodField()
    no_stock_or_price = serializers.SerializerMethodField()

    class Meta:
        model = Document
        fields = ('id', 'updated_at', 'user', 'step', 'status', 'department',
                  'brand', 'products', 'no_stock_or_price')

    def get_department(self, obj):
        try:
            return obj.department.name
        except:
            return 'Нет отделения'

    def get_no_stock_or_price(self, obj):
        count = OriginalProduct.objects.filter(
            Q(original_price=0) | Q(stock=False),
            document_product__document=obj).count()
        return count

    def get_brand(self, obj):
        try:
            return obj.brand.name
        except:
            return 'Нет бренда'

    def get_products(self, obj):
        return DocumentProduct.objects.filter(document=obj).count()

    def get_status(self, obj):
        return obj.status
Пример #11
0
 def get(self, request):
     if request.user.is_authenticated:
         user = UserSerializer(request.user, context={'request': request})
         return Response(user.data, status=status.HTTP_200_OK)
     else:
         return Response(status=status.HTTP_401_UNAUTHORIZED)
Пример #12
0
def my_jwt_response_handler(token, user=None, request=None):
    return {
        'token': token,
        'user': UserSerializer(user, context={'request': request}).data
    }
Пример #13
0
def profile_list_view(request):
    if request.method == 'GET':
        profile_list = User.objects.filter(is_active=True,
                                           user_type__in=[2, 3])
        return Response(status=status.HTTP_200_OK,
                        data=UserSerializer(profile_list, many=True).data)
Пример #14
0
 def get(self, request, format=None):
     return Response(UserSerializer(request.user).data)