def authenticate_user_send_otp(self, request, **kwargs): if request.method != 'POST': return HttpResponse(json.dumps({"message":"method not allowed"}), content_type="application/json",status=401) try: load = json.loads(request.body) except: return HttpResponse(content_type="application/json", status=404) email = load.get('email_id') phone_number = load.get('phone_number') if not phone_number and not email: return HttpBadRequest("phone_number or email is required") try: if phone_number: phone_number = format_phone_number(phone_number) logger.info('OTP request received. Mobile: {0}'.format(phone_number)) user_obj = afterbuy_model.Consumer.objects.get(phone_number=phone_number).user otp = otp_handler.get_otp(user=user_obj) message = afterbuy_utils.get_template('SEND_OTP').format(otp) send_job_to_queue('send_otp', {'phone_number': phone_number, 'message': message, "sms_client": settings.SMS_CLIENT}) logger.info('OTP sent to mobile {0}'.format(phone_number)) data = {'status': 1, 'message': "OTP sent_successfully"} #Send email if email address exist if email: try: consumer_obj = afterbuy_model.Consumer.objects.get(user__email=email, is_email_verified=True) site = RequestSite(request) afterbuy_model.EmailToken.objects.create_email_token(consumer_obj, email, site, trigger_mail='forgot-password') data = {'status': 1, 'message': "Password reset link sent successfully"} return HttpResponse(json.dumps(data), content_type="application/json") except Exception as ex: log_message = "new user :{0}".format(ex) logger.info(log_message) data = {'status': 0, 'message': "Either your email is not verified or its not exist"} except Exception as ex: logger.error('Invalid details, mobile {0} and exception {1}'.format(request.POST.get('phone_number', ''),ex)) data = {'status': 0, 'message': "inavlid phone_number/email_id"} return HttpResponse(json.dumps(data), content_type="application/json")
def auth_login(request): user = getattr(request, 'user', None) if hasattr(user, 'is_authenticated') and user.is_authenticated(): return HttpResponseRedirect(redirect_url(request)) c = {} c.update(csrf(request)) if request.POST: username = request.POST.get('username') mobile = request.POST.get('mobile') password = request.POST['password'] if username: user = authenticate(username=username, password=password) if mobile: mobile = format_phone_number(mobile) user_profile = models.UserProfile.objects.filter(phone_number=mobile)[0] user = authenticate(username=user_profile.user.username, password=password) if user is not None: if user.is_active: login(request, user) return HttpResponseRedirect(redirect_url(request)) return HttpResponseRedirect(str(request.META.get('HTTP_REFERER'))) else: return render(request, 'login.html')