github.com/SupenBysz/gf-admin-community@v0.7.4/sys_service/sys_permission.go (about)

     1  // ================================================================================
     2  // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
     3  // You can delete these comments if you wish manually maintain this interface file.
     4  // ================================================================================
     5  
     6  package sys_service
     7  
     8  import (
     9  	"context"
    10  
    11  	"github.com/SupenBysz/gf-admin-community/sys_model"
    12  	"github.com/SupenBysz/gf-admin-community/sys_model/sys_entity"
    13  	"github.com/gogf/gf/v2/container/gmap"
    14  	"github.com/kysion/base-library/base_model"
    15  	"github.com/kysion/base-library/utility/base_permission"
    16  )
    17  
    18  type (
    19  	ISysPermission interface {
    20  		// GetPermissionById 根据权限ID获取权限信息
    21  		GetPermissionById(ctx context.Context, permissionId int64) (*sys_entity.SysPermission, error)
    22  		// GetPermissionByIdentifier 根据权限标识符Identifier获取权限信息
    23  		GetPermissionByIdentifier(ctx context.Context, identifier string) (*sys_entity.SysPermission, error)
    24  		// QueryPermissionList 查询权限列表
    25  		QueryPermissionList(ctx context.Context, info base_model.SearchParams) (*sys_model.SysPermissionInfoListRes, error)
    26  		// GetPermissionsByResource 根据资源获取权限Ids, 资源一般为用户ID、角色ID,员工ID等
    27  		GetPermissionsByResource(ctx context.Context, resource string) ([]int64, error)
    28  		// GetPermissionList 根据ID获取下级权限信息,返回列表
    29  		GetPermissionList(ctx context.Context, parentId int64, IsRecursive bool) ([]*sys_entity.SysPermission, error)
    30  		// GetPermissionTree 根据ID获取下级权限信息,返回列表树
    31  		GetPermissionTree(ctx context.Context, parentId int64, permissionType ...int) ([]base_permission.IPermission, error)
    32  		CreatePermission(ctx context.Context, info sys_model.SysPermission) (*sys_entity.SysPermission, error)
    33  		UpdatePermission(ctx context.Context, info *sys_model.UpdateSysPermission) (*sys_entity.SysPermission, error)
    34  		// SetPermissionsByResource 设置资源权限
    35  		SetPermissionsByResource(ctx context.Context, resourceIdentifier string, permissionIds []int64) (response bool, err error)
    36  		// ImportPermissionTree 导入权限,如果存在则忽略,递归导入权限
    37  		ImportPermissionTree(ctx context.Context, permissionTreeArr []base_permission.IPermission, parent base_permission.IPermission) error
    38  		// SavePermission 新增/保存权限信息
    39  		SavePermission(ctx context.Context, info sys_model.SysPermission) (*sys_entity.SysPermission, error)
    40  		// DeletePermission 删除权限信息
    41  		DeletePermission(ctx context.Context, permissionId int64) (bool, error)
    42  		// GetPermissionTreeIdByUrl 根据请求URL去匹配权限树,返回权限
    43  		GetPermissionTreeIdByUrl(ctx context.Context, path string) (*sys_entity.SysPermission, error)
    44  		// CheckPermission 校验权限,如果多个则需要同时满足
    45  		CheckPermission(ctx context.Context, tree ...base_permission.IPermission) (has bool, err error)
    46  		// CheckPermissionOr 校验权限,任意一个满足则有权限
    47  		CheckPermissionOr(ctx context.Context, tree ...base_permission.IPermission) (has bool, err error)
    48  		// CheckPermissionByIdentifier 通过标识符校验权限
    49  		CheckPermissionByIdentifier(ctx context.Context, identifier string) (bool, error)
    50  		// PermissionTypeForm 通过枚举值取枚举类型
    51  		PermissionTypeForm(code int64, mapItems *gmap.StrAnyMap) *sys_model.SysPermission
    52  	}
    53  )
    54  
    55  var (
    56  	localSysPermission ISysPermission
    57  )
    58  
    59  func SysPermission() ISysPermission {
    60  	if localSysPermission == nil {
    61  		panic("implement not found for interface ISysPermission, forgot register?")
    62  	}
    63  	return localSysPermission
    64  }
    65  
    66  func RegisterSysPermission(i ISysPermission) {
    67  	localSysPermission = i
    68  }