resource.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. from ..base import base
  2. from ..models import Resource, Organization
  3. from ..models import Role
  4. from ..models import User
  5. from flask import g, jsonify
  6. from flask_login import current_user
  7. import json
  8. from ..models import ResourceType
  9. from flask import render_template, request
  10. from .. import db
  11. import uuid
  12. from datetime import datetime
  13. from sqlalchemy import desc
  14. from sqlalchemy import asc
  15. @base.route('/base/syresource!doNotNeedSecurity_getMainMenu.action', methods=['POST'])
  16. def resource_grid():
  17. rs = Resource.query.join(Role, Resource.roles).join(User, Role.users).filter(User.ID == current_user.ID).all()
  18. return jsonify([r.to_menu_json() for r in rs])
  19. @base.route('/base/syresourcetype!doNotNeedSecurity_combobox.action', methods=['POST'])
  20. def resource_type_combox():
  21. rt = ResourceType.query.all()
  22. return jsonify([r.to_json() for r in rt])
  23. @base.route('/securityJsp/base/Syresource.jsp', methods=['GET'])
  24. def index_resource():
  25. return render_template('resource/index.html')
  26. @base.route('/securityJsp/base/SyresourceForm.jsp', methods=['GET'])
  27. def form_resource():
  28. return render_template('resource/form.html', id=request.args.get('id', ''))
  29. @base.route('/base/syresource!doNotNeedSecurity_getRoleResources.action', methods=['POST'])
  30. def get_role_resources():
  31. resources = Resource.query.join(Role, Resource.roles).filter(Role.ID == request.form.get('id')).all()
  32. return jsonify([res.to_json() for res in resources])
  33. @base.route('/base/syresource!doNotNeedSecurity_getResourcesTree.action', methods=['POST'])
  34. def get_resources_tree():
  35. return syresource_treeGrid()
  36. @base.route('/base/syresource!doNotNeedSecurity_getOrganizationResources.action', methods=['POST'])
  37. def get_organization_resources():
  38. resources = Resource.query.join(Organization, Resource.organizations).filter(Organization.ID == request.form.get('id')).all()
  39. return jsonify([res.to_json() for res in resources])
  40. @base.route('/system/menu/list', methods=['GET'])
  41. def syresource_treeGrid():
  42. filters = []
  43. if 'menuName' in request.args:
  44. filters.append(Resource.NAME.like('%' + request.args['menuName'] + '%'))
  45. order_by = []
  46. order_by.append(asc(getattr(Resource, 'SYRESOURCE_ID')))
  47. order_by.append(asc(getattr(Resource, 'SEQ')))
  48. res_list = Resource.query.filter(*filters).order_by(*order_by)
  49. return jsonify({"msg":"操作成功","code":200, "data": [org.to_json() for org in res_list]})
  50. @base.route('/base/syresource!doNotNeedSecurity_comboTree.action', methods=['POST'])
  51. def syresource_comboTree():
  52. res_list = Resource.query.all()
  53. return jsonify([org.to_json() for org in res_list])
  54. @base.route('/system/menu/<id>', methods=['GET'])
  55. def syresource_getById(id):
  56. res = Resource.query.get(id)
  57. if res:
  58. return jsonify({'code': 200, 'msg': '操作成功', 'data': res.to_json()})
  59. else:
  60. return jsonify({'success': False, 'msg': 'error'})
  61. @base.route('/system/menu', methods=['PUT'])
  62. def syresource_update():
  63. res = Resource.query.get(request.json['menuId'])
  64. res.UPDATEDATETIME = datetime.now()
  65. if 'icon' in request.json: res.ICONCLS = request.json['icon']
  66. if 'component' in request.json: res.URL = request.json['component']
  67. if 'menuName' in request.json: res.NAME = request.json['menuName']
  68. if 'orderNum' in request.json: res.SEQ = request.json['orderNum']
  69. if 'perms' in request.json: res.PERMS = request.json['perms']
  70. if 'menuType' in request.json: res.SYRESOURCETYPE_ID = '1' if request.json['menuType'] == 'F' else '0' if request.json['menuType'] == 'C' else '3'
  71. if 'parentId' in request.json: res.parent = Resource.query.get(request.json['parentId'])
  72. db.session.add(res)
  73. return jsonify({'code': 200, 'msg': '操作成功'})
  74. @base.route('/system/menu', methods=['POST'])
  75. def syresource_save():
  76. res = Resource()
  77. res.ID = str(uuid.uuid4())
  78. if 'icon' in request.json: res.ICONCLS = request.json['icon']
  79. if 'component' in request.json: res.URL = request.json['component']
  80. if 'menuName' in request.json: res.NAME = request.json['menuName']
  81. if 'orderNum' in request.json: res.SEQ = request.json['orderNum']
  82. if 'perms' in request.json: res.PERMS = request.json['perms']
  83. if 'menuType' in request.json: res.SYRESOURCETYPE_ID = '1' if request.json['menuType'] == 'F' else '0' if request.json['menuType'] == 'F' else '3'
  84. if 'parentId' in request.json: res.parent = Resource.query.get(request.json['parentId'])
  85. db.session.add(res)
  86. return jsonify({'code': 200, 'msg': '操作成功'})
  87. @base.route('/system/menu/<id>', methods=['DELETE'])
  88. def syresource_delete(id):
  89. res = Resource.query.get(id)
  90. if res:
  91. db.session.delete(res)
  92. return jsonify({'code': 200, 'msg': '操作成功'})