|
@@ -1,4 +1,6 @@
|
|
|
# coding:utf-8
|
|
|
+import imp
|
|
|
+from operator import or_
|
|
|
from ..base import base
|
|
|
from ..models import Role, Resource, User
|
|
|
from flask import render_template, request
|
|
@@ -9,6 +11,7 @@ from .. import db
|
|
|
import uuid
|
|
|
from sqlalchemy import desc
|
|
|
from sqlalchemy import asc
|
|
|
+from sqlalchemy import or_
|
|
|
|
|
|
@base.route('/securityJsp/base/Syrole.jsp', methods=['GET'])
|
|
|
def index_role():
|
|
@@ -94,7 +97,7 @@ def syrole_update():
|
|
|
|
|
|
db.session.add(role)
|
|
|
|
|
|
- return jsonify({'success': True})
|
|
|
+ return jsonify({'code': 200})
|
|
|
|
|
|
@base.route('/system/role', methods=['POST'])
|
|
|
def syrole_save():
|
|
@@ -102,15 +105,19 @@ def syrole_save():
|
|
|
|
|
|
role.ID = str(uuid.uuid4())
|
|
|
role.NAME = request.json['roleName']
|
|
|
- role.DESCRIPTION = request.json['remark']
|
|
|
+ if 'remark' in request.json: role.DESCRIPTION = request.json['remark']
|
|
|
role.SEQ = request.json['roleSort']
|
|
|
|
|
|
+ if 'menuIds' in request.json:
|
|
|
+ res_list = [Resource.query.get(menuId) for menuId in request.json['menuIds']]
|
|
|
+ role.resources = res_list
|
|
|
+
|
|
|
# add current use to new role
|
|
|
current_user.roles.append(role)
|
|
|
|
|
|
db.session.add(role)
|
|
|
|
|
|
- return jsonify({'success': True})
|
|
|
+ return jsonify({'code': 200})
|
|
|
|
|
|
@base.route('/system/role/<string:id>', methods=['DELETE'])
|
|
|
def syrole_delete(id):
|
|
@@ -118,4 +125,24 @@ def syrole_delete(id):
|
|
|
if role:
|
|
|
db.session.delete(role)
|
|
|
|
|
|
- return jsonify({'success': True})
|
|
|
+ return jsonify({'code': 200})
|
|
|
+
|
|
|
+@base.route('/system/role/authUser/allocatedList', methods=['GET'])
|
|
|
+def allocatedList():
|
|
|
+ page = request.args.get('pageNum', 1, type=int)
|
|
|
+ rows = request.args.get('pageSize', 10, type=int)
|
|
|
+ pagination = User.query.join(Role, User.roles).filter(Role.ID == request.args['roleId']).paginate(
|
|
|
+ page, per_page=rows, error_out=False)
|
|
|
+ users = pagination.items
|
|
|
+
|
|
|
+ return jsonify({'rows': [user.to_json() for user in users], 'total': pagination.total})
|
|
|
+
|
|
|
+@base.route('/system/role/authUser/unallocatedList', methods=['GET'])
|
|
|
+def unallocatedList():
|
|
|
+ page = request.args.get('pageNum', 1, type=int)
|
|
|
+ rows = request.args.get('pageNum', 10, type=int)
|
|
|
+ pagination = User.query.join(Role, User.roles).filter(or_(Role.ID != request.args['roleId'], Role.ID == None)).paginate(
|
|
|
+ page, per_page=rows, error_out=False)
|
|
|
+ users = pagination.items
|
|
|
+
|
|
|
+ return jsonify({'rows': [user.to_json() for user in users], 'total': pagination.total})
|