organization.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. from ..base import base
  2. from ..models import Resource
  3. from ..models import Role
  4. from ..models import User
  5. from ..models import Organization
  6. from flask import g, jsonify, request
  7. from flask_login import current_user, login_required
  8. import json
  9. from .. import db
  10. from flask import render_template
  11. from datetime import datetime
  12. import uuid
  13. @base.route('/securityJsp/base/Syorganization.jsp', methods=['GET'])
  14. def index_organization():
  15. return render_template('organization/index.html')
  16. @base.route('/securityJsp/base/SyorganizationForm.jsp', methods=['GET'])
  17. def form_organization():
  18. return render_template('organization/form.html', id=request.args.get('id', ''))
  19. @base.route('/securityJsp/base/SyorganizationGrant.jsp', methods=['GET'])
  20. def grant_organization_resource_page():
  21. return render_template('organization/grant.html', id=request.args.get('id', ''))
  22. @base.route('/base/syorganization!grant.action', methods=['POST'])
  23. def grant_organization_resource():
  24. id = request.form.get('id')
  25. ids = request.form.get('ids')
  26. org = Organization.query.get(id)
  27. if not ids:
  28. org.resources = []
  29. else:
  30. idList = ids.split(',')
  31. org.resources = [Resource.query.get(rid) for rid in idList]
  32. db.session.add(org)
  33. return jsonify({'success': True})
  34. @base.route('/system/dept/list', methods=['GET'])
  35. @login_required
  36. def syorganization_treeGrid():
  37. filters = []
  38. if 'deptName' in request.args:
  39. filters.append(Organization.NAME.like('%' + request.args['deptName'] + '%'))
  40. orgs = Organization.query.filter(*filters)
  41. return jsonify({'msg': '操作成功', 'code': 200, "data": [org.to_json() for org in orgs]})
  42. @base.route('/system/dept/treeselect', methods=['GET'])
  43. @login_required
  44. def syorganization_tree_select():
  45. orgs = Organization.query.filter(Organization.SYORGANIZATION_ID == None)
  46. return jsonify({'msg': '操作成功', 'code': 200, "data": [org.to_tree_select_json() for org in orgs]})
  47. @base.route('/system/dept/list/exclude/<id>', methods=['GET'])
  48. @login_required
  49. def syorganization_dept_list_exclude(id):
  50. orgs = Organization.query.filter(Organization.ID != id)
  51. return jsonify({'msg': '操作成功', 'code': 200, "data": [org.to_json() for org in orgs]})
  52. @base.route('/base/syorganization!doNotNeedSecurity_comboTree.action', methods=['POST'])
  53. def syorganization_comboTree():
  54. orgs = Organization.query.all()
  55. return jsonify([org.to_json() for org in orgs])
  56. @base.route('/base/syorganization!doNotNeedSecurity_getSyorganizationsTree.action', methods=['POST'])
  57. def get_syorganizations_tree():
  58. orgs = Organization.query.join(User, Organization.users).filter(User.ID == current_user.ID).all()
  59. return jsonify([org.to_json() for org in orgs])
  60. @base.route('/base/syorganization!doNotNeedSecurity_getSyorganizationByUserId.action', methods=['POST'])
  61. def get_syorganization_by_userId():
  62. orgs = Organization.query.join(User, Organization.users).filter(User.ID == request.form.get('id')).all()
  63. return jsonify([org.to_json() for org in orgs])
  64. @base.route('/system/dept/<string:id>', methods=['GET'])
  65. def syorganization_getById(id):
  66. org = Organization.query.get(id)
  67. if org:
  68. return jsonify({'msg': '操作成功', 'code': 200, 'data': org.to_json()})
  69. else:
  70. return jsonify({'success': False, 'msg': 'error'})
  71. @base.route('/system/dept', methods=['PUT'])
  72. def syorganization_update():
  73. org = Organization.query.get(request.json['deptId'])
  74. org.UPDATEDATETIME = datetime.now()
  75. if 'deptName' in request.json: org.NAME = request.json['deptName']
  76. if 'email' in request.json: org.EMAIL = request.json['email']
  77. if 'leader' in request.json: org.LEADER = request.json['leader']
  78. if 'phone' in request.json: org.PHONE = request.json['phone']
  79. if 'orderNum' in request.json: org.SEQ = request.json['orderNum']
  80. if 'parentId' in request.json: org.parent = Organization.query.get(request.json['parentId'])
  81. db.session.add(org)
  82. return jsonify({'code': 200, 'msg': '操作成功'})
  83. @base.route('/system/dept', methods=['POST'])
  84. def syorganization_save():
  85. org = Organization()
  86. org.ID = str(uuid.uuid4())
  87. if 'deptName' in request.json: org.NAME = request.json['deptName']
  88. if 'email' in request.json: org.EMAIL = request.json['email']
  89. if 'leader' in request.json: org.LEADER = request.json['leader']
  90. if 'phone' in request.json: org.PHONE = request.json['phone']
  91. if 'orderNum' in request.json: org.SEQ = request.json['orderNum']
  92. if 'parentId' in request.json: org.parent = Organization.query.get(request.json['parentId'])
  93. # add organization to current user
  94. current_user.organizations.append(org)
  95. db.session.add(org)
  96. return jsonify({'code': 200, 'msg': '操作成功'})