예제 #1
0
 def user_insert_or_update(form=None):
     params = copy.deepcopy(form)
     if form.get("id"):
         f = [User.id == form.get("id")]
         CommonService.update_by_attrs(User, f, form)
     else:
         params.setdefault("create_user", session.get('username', "管理员"))
         CommonService.add_record(User, params)
예제 #2
0
    def insert_or_update(form):
        menu = CommonService.get_by_id(AppMenuPerm, form.get("id"))
        if menu:  # 更新菜单
            CommonService.update_by_obj(menu, form)
            return
        menu = CommonService.add_record(AppMenuPerm, form)

        # 默认为系统管理员角色添加菜单权限
        user_role_perm = UserRolePerm()
        user_role_perm.role_id = 1  # 系统管理员角色
        user_role_perm.node_permission = form.get("id")
        user_role_perm.create_time = datetime.now()
        user_role_perm.update_time = datetime.now()
        role = CommonService.save_by_obj(user_role_perm)
예제 #3
0
 def get_role_by_id(form):
     """
     跟据id获取角色
     :return:
     """
     role = CommonService.get_by_id(Role, form.get("id"))
     return role
예제 #4
0
    def insert_or_update(form):
        if form.get("name").strip() == '':
            raise ShowError("角色名不能为空")
        if form.get("id"):
            f = [Role.name == form.get("name"), Role.id != form.get("id")]
        else:
            f = [Role.name == form.get("name")]
        roles = CommonService.list_select_by_filter([Role.id], f)
        if roles:
            raise ShowError("该角色已存在")
        db_session = g.pg_db
        try:
            # 创建角色
            role = Role()
            for key, value in form.items():
                if key is not None:
                    setattr(role, key, value)
            role = db_session.merge(role)

            # 创建角色对应的权限
            db_session.query(UserRolePerm).filter(
                UserRolePerm.role_id == role.id).delete(
                    synchronize_session=False)

            node_permission_list = form.get("node_permission").split(',')
            node_permission_list = [{
                "role_id": role.id,
                "node_permission": item
            } for item in node_permission_list]
            db_session.bulk_insert_mappings(UserRolePerm, node_permission_list)
            db_session.commit()
        except Exception as e:
            db_session.rollback()
            raise ShowError("添加角色失败")
예제 #5
0
 def user_list(form=None):
     filters = []
     if form.get("status"):
         filters.append(User.status == form.get("status"))
     if form.get("keyword"):
         filters.append(
             User.name.like("%{name}%".format(name=form.get("keyword")))
             | User.desc.like("%{desc}%".format(desc=form.get("keyword"))))
     ret = CommonService.list_by_filter(User, filters, form)
     return ret
예제 #6
0
 def get_login_user_app_menus(user_id):
     """
     获取登录用户节点权限信息(list)
     :param uid:
     :return:
     """
     user_app_menus = set()
     user = CommonService.get_by_id(User, user_id)
     list_role_perms = RolePermService.list_perm(
         [UserRolePerm.role_id == user.role_id])
     for role_perm in list_role_perms:
         user_app_menus.add(role_perm.node_permission)
     return list_role_perms
예제 #7
0
 def check_app_id(form):
     """检查APP_ID是否存在"""
     app = CommonService.get_by_id(AppMenuPerm, form.get("app_id"))
     ret = 1 if app else 0
     return ret
예제 #8
0
 def user_detail(form=None):
     user = CommonService.get_by_id(User, form.get("id"))
     return user.to_dict()
예제 #9
0
 def user_del(form=None):
     if not form.get("ids"):
         raise ShowError("请选择要删除的用户")
     filters = [User.id.in_(form.get("ids"))]
     CommonService.update_by_attrs(User, filters,
                                   {"status": USER_STATUS.get("删除")})
예제 #10
0
 def get_all_roles(form):
     roles = CommonService.list_by_filter(Role, filters=[], params=form)
     return roles
예제 #11
0
 def delete_roles(form):
     """
     角色批量删除
     :return:
     """
     CommonService.del_by_ids(Role, [form.get("role_ids")])