コード例 #1
0
def user_signup(request):
    '''
    This is for user signup without Email varification. User will be able to signup using email and password. Signup will automatically create
    corresponding user profile and balance. Calling http://127.0.0.1:8000/user/user_signup/ will cause to invoke this Api.
    Response Type : Post
    Required filed: email, password
    Successful Post response:
        {
            "success": true,
            "message": "A verification link has been sent to your email"
        }
    unsuccessful Post Response:
        {
            "success": false,
            "message": "Some internal problem occurs"
        }
    '''
    if request.method == 'POST':
        try:
            serializer_class = RegisterSerializer
            user = request.data
            serializer = serializer_class(data=user)
            serializer.is_valid(raise_exception=True)
            serializer.save()
            user_data = serializer.data
            user = User.objects.get(email=user_data['email'])
            if not user.is_verified:
                user.is_verified = True
                user.save()
            balance_values = {'user_id': user.id}
            create_user_balance(balance_values)
            profile_values = {'user_id': user.id, 'email': user.email}
            create_user_profile(profile_values)
            return Response(
                {
                    'success': True,
                    'message':
                    'A verification link has been sent to your email'
                },
                status=status.HTTP_201_CREATED)
        except:
            return Response({
                'success': False,
                'message': 'Some internal problem occurs'
            })
コード例 #2
0
    def get(self, request):
        token = request.GET.get('token')
        try:
            payload = jwt.decode(token, settings.SECRET_KEY)
            user = User.objects.get(id=payload['user_id'])
            if not user.is_verified:
                user.is_verified = True
                user.save()
            balance_values = {'user_id': payload['user_id']}
            create_user_balance(balance_values)
            profile_values = {
                'user_id': payload['user_id'],
                'email': user.email
            }
            create_user_profile(profile_values)

            return Response({'email': 'Successfully activated'},
                            status=status.HTTP_200_OK)
        except jwt.ExpiredSignatureError as identifier:
            return Response({'error': 'Activation Expired'},
                            status=status.HTTP_400_BAD_REQUEST)
        except jwt.exceptions.DecodeError as identifier:
            return Response({'error': 'Invalid token'},
                            status=status.HTTP_400_BAD_REQUEST)
コード例 #3
0
ファイル: views.py プロジェクト: sameesayeed007/tango-backend
def create_user(request):

    email = request.data.get('email')
    password = request.data.get('password')
    role = request.data.get('role')
    pwd = make_password(password)
    username = request.data.get('username')
    phone_number = request.data.get('phone_number')
    if username is None:
        username = ""
    if phone_number is None:
        phone_number = ""

    #Create an user
    if role == "Admin" or "Staff":

        new_user = User.objects.create(email=email,
                                       password=pwd,
                                       pwd=password,
                                       role=role,
                                       is_staff=True,
                                       is_verified=True,
                                       is_active=True,
                                       username=username,
                                       phone_number=phone_number)
        new_user.save()
        user_id = new_user.id
        email = new_user.email
        print(new_user)
        data = {
            'email': email,
            'password': pwd,
            'pwd': password,
            'role': role,
            'is_staff': True,
            'is_verified': True,
            'is_active': True,
            'username': username,
            'phone_number': phone_number
        }
        new_serializer = UserSerializerz(new_user, data=data)

        if new_serializer.is_valid():
            new_serializer.save()

            balance_values = {'user_id': user_id}
            create_user_balance(balance_values)
            profile_values = {'user_id': user_id, 'email': email}
            create_user_profile(profile_values)
            data = new_serializer.data

            # try:
            #     current_user = User.objects.get(id=user_id)
            # except:
            #     current_user = None

            # if current_user:
            #     new_serializer = UserSerializerz(new_user,many=False)
            #     data = new_serializer.data
            # else:
            #     data = {}

            return Response({
                'success': True,
                'message': 'User has been created',
                'data': data,
                # 'encrypted_password': data["password"],
                'password': password
            })

        else:
            print(new_serializer.errors)
            return Response({
                'success': False,
                'message': 'Could not create user',
            })

    elif role == "Seller":

        new_user = User.objects.create(email=email,
                                       pwd=password,
                                       password=pwd,
                                       role=role,
                                       is_suplier=True,
                                       is_staff=True,
                                       is_verified=True,
                                       is_active=True,
                                       username=username,
                                       phone_number=phone_number)
        new_user.save()
        user_id = new_user.id
        email = new_user.email
        data = {
            'email': email,
            'password': pwd,
            'pwd': password,
            'role': role,
            'is_staff': True,
            'is_verified': True,
            'is_active': True,
            'is_suplier': True,
            'username': username,
            'phone_number': phone_number
        }

        new_serializer = UserSerializerz(new_user, data=data)
        if new_serializer.is_valid():
            new_serializer.save()
            balance_values = {'user_id': user_id}
            create_user_balance(balance_values)
            profile_values = {'user_id': user_id, 'email': email}
            create_user_profile(profile_values)
            data = new_serializer.data
            # try:
            #     current_user = User.objects.get(id=user_id)
            # except:
            #     current_user = None

            # if current_user:
            #     new_serializer = UserSerializerz(new_user,many=False)
            #     data = new_serializer.data
            # else:
            #     data = {}

            return Response({
                'success': True,
                'message': 'User has been created',
                'data': data,
                'password': password
            })

        else:
            print(new_serializer.errors)
            return Response({
                'success': False,
                'message': 'Could not create user',
            })

    else:

        return Response({
            'success': False,
            'message': 'Insert the correct role'
        })