def getRoleTreeData(role_code): """ 向客户端返回查询角色的树数据 :param role_code: str, 角色代码 :return: json, 以角色为顶节点的树({'data':{'role_code': str, 'name': str, 'status': boolean, children:[]}}) """ h = RoleHandler() return packageResponse({'data': h.getRoleTreeData(role_code)})
def getRoles(self): """ 获得对象的角色列表 :return: list, 对象的角色列表 """ h = UserHandler() r = RoleHandler() roles = h.getUserRolesByCode(self.user_code) all_roles = roles.copy() for e in roles: all_roles.extend(r.getAllDescendantsByCode(e.role_code)) return all_roles
def listRoles(): """ 向客户端返回所有角色的列表 :return: json, {'data': [{'role_code': str, 'name': str}]} """ h = RoleHandler() l = h.listRoles(status='') return packageResponse( {'data': [{ 'role_code': e.role_code, 'name': e.name } for e in l]})
def getUserViewroute(self): """ 获得对象有权访问的前台菜单列表 :return: list, 对象有权访问的前台菜单列表 """ vr = [] if self.roles and len(self.roles) > 0: h = RoleHandler() for e in self.roles: r = h.getViewrouteByRole(e.role_code) for ee in r: vr.append({'viewroute': ee.viewroute, 'leaf': ee.leaf}) return eliminateListDups(vr)
def getUserEndpoint(self): """ 获得对象有权访问的后台服务列表 :return: list, 对象有权访问的后台服务列表 """ ep = [] if self.roles and len(self.roles) > 0: h = RoleHandler() for e in self.roles: r = h.getEndpointByRole(e.role_code) for ee in r: ep.append({'endpoint': ee.endpoint, 'method': ee.method}) return eliminateListDups(ep)
def getRoleData(): """ 向客户端返回角色数据(包括角色的后台服务和前台菜单) :return: json, [{'code': str, 'name': name, 'status': boolean, 'endpoint': [], 'viewroute': []}] """ args = request.args params = {'code': '', 'name': ''} if 'code' in args: params['code'] = args['code'] if 'name' in args: params['name'] = args['name'] h = RoleHandler() return packageResponse({'data': h.getRoleData(params)})
def getRoleRoutes(): """ 向客户端返回角色的前置菜单列表 :return: json, {'data': []} """ h = RoleHandler() data = request.get_json() a = [] if data: for e in data: r = h.getViewrouteByRole(e) if r: a.extend([e.viewroute for e in r]) return packageResponse({'data': a})
def updateRole(): """ 更新角色数据 :return: json, {'data':{'code': r}} r为0表示更新成功, 否则表示更新失败 """ data = request.get_json() if data: up = session['current_user_proxy'] if up: h = RoleHandler() r = h.updateRoleData(data, up.user_code) return packageResponse({'data': { 'code': r }}) if r == 0 else ('角色信息更新失败!', 500)