user.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. # coding:utf-8
  2. from ..base import base
  3. from ..models import User, Organization, Role
  4. from flask import render_template, request
  5. from flask import g, jsonify
  6. import hashlib
  7. from flask_login import login_user, logout_user, login_required, \
  8. current_user
  9. from datetime import datetime
  10. from .. import db
  11. import uuid
  12. @base.route('/login', methods=['GET'])
  13. def login():
  14. return render_template('login.html')
  15. @base.route('/securityJsp/base/SyuserForm.jsp', methods=['GET'])
  16. def form_user():
  17. return render_template('user/form.html', id=request.args.get('id', ''))
  18. @base.route('/securityJsp/base/SyuserOrganizationGrant.jsp', methods=['GET'])
  19. def grant_user_organization_page():
  20. return render_template('user/grant_organization.html', id=request.args.get('id', ''))
  21. @base.route('/securityJsp/base/SyuserRoleGrant.jsp', methods=['GET'])
  22. def grant_user_role_page():
  23. return render_template('user/grant_role.html', id=request.args.get('id', ''))
  24. @base.route('/base/syuser!grantOrganization.action', methods=['POST'])
  25. def grant_user_organization():
  26. id = request.form.get('id')
  27. ids = request.form.get('ids')
  28. user = User.query.get(id)
  29. if not ids:
  30. user.organizations = []
  31. else:
  32. idList = ids.split(',')
  33. user.organizations = [Organization.query.get(rid) for rid in idList]
  34. db.session.add(user)
  35. return jsonify({'success': True})
  36. @base.route('/base/syuser!grantRole.action', methods=['POST'])
  37. def grant_user_role():
  38. id = request.form.get('id')
  39. ids = request.form.get('ids')
  40. user = User.query.get(id)
  41. if not ids:
  42. user.roles = []
  43. else:
  44. idList = ids.split(',')
  45. user.roles = [Role.query.get(rid) for rid in idList]
  46. db.session.add(user)
  47. return jsonify({'success': True})
  48. @base.route('/base/syuser!doNotNeedSessionAndSecurity_logout.action', methods=['POST'])
  49. def do_logout():
  50. logout_user()
  51. return jsonify({'success': True})
  52. @base.route('/base/syuser!doNotNeedSessionAndSecurity_login.action', methods=['POST'])
  53. def do_login():
  54. #检查用户名是否存在
  55. user = User.query.filter_by(LOGINNAME=request.form['data.loginname']).first()
  56. if user is not None:
  57. md = hashlib.md5()
  58. #提交的密码MD5加密
  59. md.update(request.form['data.pwd'].encode('utf-8'))
  60. #MD5加密后的内容同数据库密码比较
  61. if md.hexdigest() == user.PWD:
  62. login_user(user)
  63. return jsonify({'success': True, 'msg': ''})
  64. return jsonify({'success': False, 'msg': 'password error'})
  65. @base.route('/securityJsp/base/Syuser.jsp', methods=['GET'])
  66. def index_user():
  67. return render_template('user/index.html')
  68. @base.route('/base/syuser!grid.action', methods=['POST'])
  69. def user_grid():
  70. page = request.form.get('page', 1, type=int)
  71. rows = request.form.get('rows', 10, type=int)
  72. pagination = User.query.paginate(
  73. page, per_page=rows, error_out=False)
  74. users = pagination.items
  75. return jsonify([user.to_json() for user in users])
  76. @base.route('/base/syuser!getById.action', methods=['POST'])
  77. def syuser_getById():
  78. user = User.query.get(request.form.get('id'))
  79. if user:
  80. return jsonify(user.to_json())
  81. else:
  82. return jsonify({'success': False, 'msg': 'error'})
  83. @base.route('/base/syuser!update.action', methods=['POST'])
  84. def syuser_update():
  85. id = request.form.get('data.id')
  86. loginname = request.form.get('data.loginname')
  87. if User.query.filter(User.LOGINNAME == loginname).filter(User.ID != id).first():
  88. return jsonify({'success': False, 'msg': '更新用户失败,用户名已存在!'})
  89. user = User.query.get(id)
  90. user.UPDATEDATETIME = datetime.now()
  91. user.LOGINNAME = request.form.get('data.loginname')
  92. user.NAME = request.form.get('data.name')
  93. user.SEX = request.form.get('data.sex')
  94. user.PHOTO = request.form.get('data.photo')
  95. db.session.add(user)
  96. return jsonify({'success': True, 'msg': '更新成功!'})
  97. @base.route('/base/syuser!save.action', methods=['POST'])
  98. def syuser_save():
  99. if User.query.filter_by(LOGINNAME = request.form.get('data.loginname')).first():
  100. return jsonify({'success': False, 'msg': '新建用户失败,用户名已存在!'})
  101. user = User()
  102. user.ID = str(uuid.uuid4())
  103. md = hashlib.md5()
  104. md.update('123456'.encode('utf-8'))
  105. user.PWD = md.hexdigest()
  106. user.NAME = request.form.get('data.name')
  107. user.LOGINNAME = request.form.get('data.loginname')
  108. user.SEX = request.form.get('data.sex')
  109. user.PHOTO = request.form.get('data.photo')
  110. # add current use to new user
  111. #current_user.roles.append(user)
  112. db.session.add(user)
  113. return jsonify({'success': True, 'msg': '新建用户成功!默认密码:123456'})
  114. @base.route('/base/syuser!delete.action', methods=['POST'])
  115. def syuser_delete():
  116. user = User.query.get(request.form.get('id'))
  117. if user:
  118. db.session.delete(user)
  119. return jsonify({'success': True})