role.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # coding:utf-8
  2. from ..base import base
  3. from ..models import Role, Resource, User
  4. from flask import render_template, request
  5. from flask_login import current_user
  6. from flask import jsonify
  7. from datetime import datetime
  8. from .. import db
  9. import uuid
  10. @base.route('/securityJsp/base/Syrole.jsp', methods=['GET'])
  11. def index_role():
  12. return render_template('role/index.html')
  13. @base.route('/securityJsp/base/SyroleForm.jsp', methods=['GET'])
  14. def form_role():
  15. return render_template('role/form.html', id=request.args.get('id', ''))
  16. @base.route('/securityJsp/base/SyroleGrant.jsp', methods=['GET'])
  17. def grant_role_page():
  18. return render_template('role/grant.html', id=request.args.get('id', ''))
  19. @base.route('/base/syrole!doNotNeedSecurity_getRolesTree.action', methods=['POST'])
  20. def get_roles_tree():
  21. roles = Role.query.join(User, Role.users).filter(User.ID == current_user.ID).all()
  22. return jsonify([role.to_json() for role in roles])
  23. @base.route('/base/syrole!doNotNeedSecurity_getRoleByUserId.action', methods=['POST'])
  24. def get_roles_by_userId():
  25. roles = Role.query.join(User, Role.users).filter(User.ID == request.form.get('id')).all()
  26. return jsonify([role.to_json() for role in roles])
  27. @base.route('/base/syrole!grant.action', methods=['POST'])
  28. def grant_role():
  29. id = request.form.get('id')
  30. ids = request.form.get('ids')
  31. role = Role.query.get(id)
  32. if not ids: #授权资源为空
  33. role.resources = []
  34. else: #授权资源访问,资源之间以逗号分割
  35. idList = ids.split(',')
  36. role.resources = [Resource.query.get(rid) for rid in idList]
  37. db.session.add(role)
  38. return jsonify({'success': True})
  39. @base.route('/base/syrole!grid.action', methods=['POST'])
  40. def grid():
  41. page = request.form.get('page', 1, type=int)
  42. rows = request.form.get('rows', 10, type=int)
  43. pagination = current_user.roles.paginate(
  44. page, per_page=rows, error_out=False)
  45. roles = pagination.items
  46. return jsonify([role.to_json() for role in roles])
  47. @base.route('/base/syrole!getById.action', methods=['POST'])
  48. def syrole_getById():
  49. role = Role.query.get(request.form.get('id'))
  50. if role:
  51. return jsonify(role.to_json())
  52. else:
  53. return jsonify({'success': False, 'msg': 'error'})
  54. @base.route('/base/syrole!update.action', methods=['POST'])
  55. def syrole_update():
  56. role = Role.query.get(request.form.get('data.id'))
  57. role.UPDATEDATETIME = datetime.now()
  58. role.NAME = request.form.get('data.name')
  59. role.DESCRIPTION = request.form.get('data.description')
  60. role.SEQ = request.form.get('data.seq')
  61. db.session.add(role)
  62. return jsonify({'success': True})
  63. @base.route('/base/syrole!save.action', methods=['POST'])
  64. def syrole_save():
  65. role = Role()
  66. role.ID = str(uuid.uuid4())
  67. role.NAME = request.form.get('data.name')
  68. role.DESCRIPTION = request.form.get('data.description')
  69. role.SEQ = request.form.get('data.seq')
  70. # add current use to new role
  71. current_user.roles.append(role)
  72. db.session.add(role)
  73. return jsonify({'success': True})
  74. @base.route('/base/syrole!delete.action', methods=['POST'])
  75. def syrole_delete():
  76. role = Role.query.get(request.form.get('id'))
  77. if role:
  78. db.session.delete(role)
  79. return jsonify({'success': True})