user.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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_login.action', methods=['POST'])
  49. def do_login():
  50. #检查用户名是否存在
  51. user = User.query.filter_by(LOGINNAME=request.form['data.loginname']).first()
  52. if user is not None:
  53. md = hashlib.md5()
  54. #提交的密码MD5加密
  55. md.update(request.form['data.pwd'])
  56. #MD5加密后的内容同数据库密码比较
  57. if md.hexdigest() == user.PWD:
  58. login_user(user)
  59. return jsonify({'success': True, 'msg': ''})
  60. return jsonify({'success': False, 'msg': 'password error'})
  61. @base.route('/securityJsp/base/Syuser.jsp', methods=['GET'])
  62. def index_user():
  63. return render_template('user/index.html')
  64. @base.route('/base/syuser!grid.action', methods=['POST'])
  65. def user_grid():
  66. page = request.form.get('page', 1, type=int)
  67. rows = request.form.get('rows', 10, type=int)
  68. pagination = User.query.paginate(
  69. page, per_page=rows, error_out=False)
  70. users = pagination.items
  71. return jsonify([user.to_json() for user in users])
  72. @base.route('/base/syuser!getById.action', methods=['POST'])
  73. def syuser_getById():
  74. user = User.query.get(request.form.get('id'))
  75. if user:
  76. return jsonify(user.to_json())
  77. else:
  78. return jsonify({'success': False, 'msg': 'error'})
  79. @base.route('/base/syuser!update.action', methods=['POST'])
  80. def syuser_update():
  81. id = request.form.get('data.id')
  82. loginname = request.form.get('data.loginname')
  83. if User.query.filter(User.LOGINNAME == loginname).filter(User.ID != id).first():
  84. return jsonify({'success': False, 'msg': '更新用户失败,用户名已存在!'})
  85. user = User.query.get(id)
  86. user.UPDATEDATETIME = datetime.now()
  87. user.LOGINNAME = request.form.get('data.loginname')
  88. user.NAME = request.form.get('data.name')
  89. user.SEX = request.form.get('data.sex')
  90. user.PHOTO = request.form.get('data.photo')
  91. db.session.add(user)
  92. return jsonify({'success': True, 'msg': '更新成功!'})
  93. @base.route('/base/syuser!save.action', methods=['POST'])
  94. def syuser_save():
  95. if User.query.filter_by(LOGINNAME = request.form.get('data.loginname')).first():
  96. return jsonify({'success': False, 'msg': '新建用户失败,用户名已存在!'})
  97. user = User()
  98. user.ID = uuid.uuid4()
  99. md = hashlib.md5()
  100. md.update('123456')
  101. user.PWD = md.hexdigest()
  102. user.NAME = request.form.get('data.name')
  103. user.LOGINNAME = request.form.get('data.loginname')
  104. user.SEX = request.form.get('data.sex')
  105. user.PHOTO = request.form.get('data.photo')
  106. # add current use to new user
  107. #current_user.roles.append(user)
  108. db.session.add(user)
  109. return jsonify({'success': True, 'msg': '新建用户成功!默认密码:123456'})
  110. @base.route('/base/syuser!delete.action', methods=['POST'])
  111. def syuser_delete():
  112. user = User.query.get(request.form.get('id'))
  113. if user:
  114. db.session.delete(user)
  115. return jsonify({'success': True})