Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. class RestorePasswordView(APIView):
  2. serializer_class = SMSRequestSerializer
  3. authentication_classes = (CsrfExemptSessionAuthentication, BasicAuthentication)
  4.  
  5. def post(self, request, *args, **kwargs):
  6. data = request.data
  7. serializer = SMSRequestSerializer(data=data)
  8. if serializer.is_valid(raise_exception=True):
  9. phone = serializer.data.get('phone')
  10.  
  11. try:
  12. user = User.objects.get(username=phone)
  13. except User.DoesNotExist:
  14. return Response("Пользователь с данным номером не зарегистрирован", status=404)
  15.  
  16. password = self.generate_code()
  17. sms_text = urllib_request.quote("Ваш новый пароль на сайте Durex: ")
  18. sms_text += password
  19. url = "http://sms.ru/sms/send?api_id=%s&from=%s&to=%s&msg=%s" % (SMS_API_ID, 'Durex', phone, sms_text)
  20.  
  21. try:
  22. res = urlopen(url, timeout=10)
  23. print("GET: %s %s\nReply:\n%s" % (res.geturl(), res.msg, res.info()))
  24. user.set_password(password)
  25. user.save()
  26. except URLError as errstr:
  27. print("smssend[debug]: %s" % url)
  28. return Response('sms.ru failed', status=400)
  29. return Response('Password sent', status=200)
  30. return Response(serializer.errors, status=400)
  31.  
  32. def generate_code(self):
  33. return ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(8))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement