misc.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import requests
  4. import json
  5. from flask import Blueprint, request
  6. from . import render
  7. __author__ = 'James Iter'
  8. __date__ = '2017/9/12'
  9. __contact__ = 'james.iter.cn@gmail.com'
  10. __copyright__ = '(c) 2017 by James Iter.'
  11. blueprint = Blueprint(
  12. 'v_misc',
  13. __name__,
  14. url_prefix='/'
  15. )
  16. def login():
  17. return render('login.html')
  18. def change_password():
  19. return render('change_password.html')
  20. def recover_password():
  21. host_url = request.host_url.rstrip('/')
  22. if request.method == 'POST':
  23. login_name = request.form.get('login_name')
  24. url = host_url + '/api/user/_send_reset_password_email/' + login_name
  25. r = requests.put(url)
  26. j_r = json.loads(r.content)
  27. return render('success.html',
  28. go_back_url='/login',
  29. timeout=10000, title=u'提交成功',
  30. message_title=u'恢复密码的请求已被接受',
  31. message=u'恢复密码的URL已发送至您的邮箱,请查看您预留的邮箱:' + j_r['data']['email'] + u'。页面将在10秒钟后自动跳转到登录页面!')
  32. else:
  33. return render('recover_password.html')
  34. def reset_password(token):
  35. host_url = request.host_url.rstrip('/')
  36. if request.method == 'POST':
  37. password = request.form.get('password')
  38. payload = {
  39. "password": password
  40. }
  41. url = host_url + '/api/user/_reset_password/' + token
  42. headers = {'content-type': 'application/json'}
  43. r = requests.post(url, data=json.dumps(payload), headers=headers)
  44. j_r = json.loads(r.content)
  45. if j_r['state']['code'] == '200':
  46. return render('success.html',
  47. go_back_url='/login',
  48. timeout=10000, title=u'提交成功',
  49. message_title=u'重置密码成功',
  50. message=u'页面将在10秒钟后自动跳转到登录页面!')
  51. else:
  52. return render('failure.html',
  53. go_back_url='/login',
  54. timeout=10000, title=u'提交失败',
  55. message_title=u'重置密码失败',
  56. message=j_r['state']['sub']['zh-cn'] + u',页面将在10秒钟后自动跳转到登录页面!')
  57. else:
  58. return render('reset_password.html', token=token)
  59. def about():
  60. return render('about.html')