Ejemplo n.º 1
0
def login_user(request, format=None):
    otp = request.data.get('otp')
    phone = request.data.get('phone')

    if utils.validate_otp(otp) and utils.validate_phone(phone):
        return login_otp(otp, phone)
    else:
        return Response(status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 2
0
def getOtp(request, format=None):
    phone = request.data.get('phone')

    if not utils.validate_phone(phone):
        return Response(status=status.HTTP_400_BAD_REQUEST)

    otp = generate_otp()
    # otp = '1234'
    send_otp(phone, otp)
    user = User.objects.get_or_create_dummy(phone)

    UserOtp.objects.create_or_update(user = user, otp=otp)
    return Response() 
Ejemplo n.º 3
0
    def post(self, request, team_id, format=None):
        team = get_object_or_404(Team, id=team_id)
        self.check_object_permissions(self.request, team)

        phone = request.data.get('phone')

        if not utils.validate_phone(phone):
            return Response(status=status.HTTP_400_BAD_REQUEST)

        user = User.objects.get_or_create_dummy(phone)
        membership = team.add_member(user, request.user)
        if membership:
            serializer = TeamMembershipSerializer(membership)
            return Response(serializer.data)

        return Response({})
Ejemplo n.º 4
0
def login_otp(otp, phone):
    if not utils.validate_otp(otp) or not utils.validate_phone(phone):
        return Response(status=status.HTTP_400_BAD_REQUEST)

    if (UserOtp.objects.checkOtp(otp, phone)):
        user = User.objects.get(phone=phone)
        if not user.is_active:
            user.activate()

        Token.objects.filter(user=user).delete()
        token = Token.objects.create(user=user)

        data = UserSerializer(user).data
        data['memberships'] = TeamMembershipSerializer(user.get_memberships(), many=True).data
        data['token'] = token.key
        return Response(data=data)
    else:
        return Response(data={"error": "Invalid OTP"}, status=status.HTTP_401_UNAUTHORIZED)
Ejemplo n.º 5
0
def web_auth_setup(request, format=None):
    otp = request.data.get('otp')
    phone = request.data.get('phone')
    name = request.data.get('name')
    password = request.data.get('password')

    if not utils.validate_otp(otp) or not name or not password or not utils.validate_phone(phone):
        return Response(status=status.HTTP_400_BAD_REQUEST)

    if not (UserOtp.objects.checkOtp(otp, phone)):
        return Response(data={"error": "Invalid OTP"}, status=status.HTTP_400_BAD_REQUEST)

    user = User.objects.get(phone=phone)
    user.name = name
    user.set_password(password)
    user.is_active = True
    user.save()
    login(request, user)
    return Response()