def post(self): """ 获取权限,格式化key,value """ json_data = request.get_json() group_id = json_data['group_id'] group = Group.query.filter_by(id=group_id).first() # 组权限,作为已选择项渲染 perms_selected = [] for perm in group.permissions: perms_selected.append(perm.id) # 指定系统下的权限为待选项,穿梭框组件会根据已选择的id自动取差集 app_id = group.app_id perms = Permission.query.filter_by(app_id=app_id) perms_data = [] for perm in perms: perms_data.append({ "remark": perm.remark, "key": perm.id, "label": perm.permission_name, "resource_name": perm.resource.resource_name }) db.session.commit() data = {'code': 20000, 'data': [perms_data, perms_selected]} return gma.dump(data)
def get(self, id): ''' 根据用户id获取角色 ''' role = Role.query.filter_by(id=id).first() result = role_schema.dump(role) data = {"code": 20000, "data": result} return gma.dump(data)
def get(self, id): ''' 获取用户名、密码 ''' user = User.query.filter_by(id=id).first() result = user_schema.dump(user) data = {"code": 20000, "data": result} return gma.dump(data)
def get(self): ''' 获取用户列表 ''' users = User.query.all() result = users_schema.dump(users) data = {'code': 20000, 'data': result} current_app.logger.info('获取用户列表') return gma.dump(data)
def get(self): """ 获取组列表 """ groups = Group.query.all() result = groups_schema.dump(groups) db.session.commit() data = {'code': 20000, 'data': result} current_app.logger.info('获取组列表') return gma.dump(data)
def delete(self): """ 删除组 """ json_data = request.get_json() id = json_data['id'] group = Group.query.filter_by(id=id).first() db.session.delete(group) db.session.commit() data = {'code': 20000, 'data': '删除成功'} return gma.dump(data)
def put(self): try: json_data = request.get_json() id = json_data['id'] act = json_data['act'] if act == 'users': """ 设置组成员 """ users = json_data['selected'] group_users = [] group = Group.query.filter_by(id=id).first() for user_id in users: user = User.query.filter_by(id=user_id).first() if user: group_users.append(user) group.users = group_users if act == 'perms': """ 设置组权限 """ perms = json_data['selected'] group_perms = [] group = Group.query.filter_by(id=id).first() for perm_id in perms: perm = Permission.query.filter_by(id=perm_id).first() if perm: group_perms.append(perm) group.permissions = group_perms if act == 'menu': perm_menu = json_data['selected'] group = Group.query.filter_by(id=id).first() if perm_menu == '': group.perm_menu_id = None else: group.perm_menu_id = perm_menu db.session.commit() data = {'code': 20000, 'data': '设置成功'} except Exception as e: db.session.rollback() current_app.logger.error(str(e)) data = { 'code': 50000, 'message': 'Failed to update menu. Please drop email to [email protected]' } finally: db.session.close() return gma.dump(data)
def post(self): ''' 用户登录,获取token ''' json_data = request.get_json() username = json_data['username'] password = json_data['password'] user = User.query.filter_by(username=username).first() if user.verify_password(password): token = user.generate_auth_token() else: return '验证失败' data = {'code': 20000, 'data': {"token": token.decode('ascii')}} current_app.logger.info('登录用户') return gma.dump(data)
def get(self): # from flask import g # print(g.user.code) apps = Application.query.all() apps_selector = [] try: for app in apps: apps_selector.append({"label": app.app_name, "value": app.id}) code = 20000 except Exception as e: code = 50000 apps_selector = "获取失败:%s" % str(e) finally: db.session.close() data = {'code': code, 'data': apps_selector} return gma.dump(data)
def post(self): ''' 创建用户 ''' json_data = request.get_json() username = json_data['username'] password = json_data['password'] role = json_data['role'] from app.models import db if Role.query.filter_by(name=role).first(): role = Role.query.filter_by(name=role).first() else: role = Role(name=role) if not User.query.filter_by(username=username).first(): user = User(username=username, password=password, role=role) db.session.add(user) db.session.commit() data = {"code": 20000, "data": None} return gma.dump(data)
def post(self): """ 创建组 """ json_data = request.get_json() group_name = json_data['group_name'] remark = json_data['remark'] app_id = json_data['app_selected'] try: group = Group(group_name=group_name, remark=remark, app_id=app_id) db.session.add(group) result = "组创建成功" except Exception as e: db.session.rollback() result = "创建失败:%s" % str(e) finally: db.session.commit() db.session.close() data = {'code': 20000, 'data': result} return gma.dump(data)
def get(self, *args, **kwargs): ''' 根据token获取用户信息 ''' token = request.args.get('token') try: user = User.verify_auth_token(token) except Exception as e: return jsonify({"code": 50012, "message": "token过期"}) data = { 'code': 20000, "data": { 'token': token, 'roles': user.role.name, 'name': user.username, 'avatar': None } } current_app.logger.info('获取用户信息') return gma.dump(data)
def post(self): """向其他系统提供菜单/界面元素等资源""" json_data = request.get_json() token = json_data['token'] app_id = json_data['app_id'] (user, element_list, menurouter, group_name) = UserInfoBody(token, app_id) data = { 'code': 20000, "data": { 'token': token, 'group': group_name if group_name else "No Data", 'name': user.username, 'avatar': None, 'element_perms': element_list, 'routers': menurouter } } current_app.logger.info('获取用户信息') return gma.dump(data)
def get(self, *args, **kwargs): ''' 根据token获取用户信息 ''' token = request.args.get('token') APP_ID = current_app.config.get('APP_ID') or 1 (user, element_list, menurouter, group_name) = UserInfoBody(token, APP_ID) data = { 'code': 20000, "data": { 'token': token, 'group': group_name if group_name else "No Data", 'name': user.username, 'avatar': None, 'element_perms': element_list, 'routers': menurouter } } current_app.logger.info('获取用户信息') return gma.dump(data)
def post(self): """ 获取用户,格式化key,value """ json_data = request.get_json() group_id = json_data['group_id'] users = User.query.all() users_data = [] users_selected = [] group = Group.query.filter_by(id=group_id).first() # 组成员,作为已选择项渲染 for user in group.users: users_selected.append(user.id) # 所有用户作为待选项,穿梭框组件会根据已选择的id自动取差集 for user in users: users_data.append({ "key": user.id, "label": "%s-%s" % (user.username, user.code) }) db.session.commit() data = {'code': 20000, 'data': [users_data, users_selected]} return gma.dump(data)
def post(self): ''' 用户登出 ''' data = {'code': 20000, "data": {'token': None, "message": "用户登出"}} return gma.dump(data)
def get(self): res = {'code': 20000} return gma.dump(res)