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)
Beispiel #9
0
    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)
Beispiel #11
0
 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)
Beispiel #14
0
    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)
Beispiel #15
0
    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)
Beispiel #16
0
 def post(self):
     '''
     用户登出
     '''
     data = {'code': 20000, "data": {'token': None, "message": "用户登出"}}
     return gma.dump(data)
Beispiel #17
0
 def get(self):
     res = {'code': 20000}
     return gma.dump(res)