github.com/SupenBysz/gf-admin-community@v0.7.4/sys_controller/sys_permission.go (about) 1 package sys_controller 2 3 import ( 4 "context" 5 "github.com/SupenBysz/gf-admin-community/api_v1" 6 "github.com/SupenBysz/gf-admin-community/api_v1/sys_api" 7 "github.com/SupenBysz/gf-admin-community/sys_model" 8 "github.com/SupenBysz/gf-admin-community/sys_model/sys_enum" 9 "github.com/SupenBysz/gf-admin-community/sys_service" 10 ) 11 12 // SysPermission 权限管理 13 var SysPermission = cSysPermission{} 14 15 type cSysPermission struct{} 16 17 // GetPermissionById 根据权限ID获取权限信|息 18 func (c *cSysPermission) GetPermissionById(ctx context.Context, req *sys_api.GetPermissionByIdReq) (*sys_model.SysPermissionInfoRes, error) { 19 // 权限判断 20 if has, err := sys_service.SysPermission().CheckPermission(ctx, sys_enum.Permissions.PermissionType.ViewDetail); has != true { 21 return nil, err 22 } 23 24 result, err := sys_service.SysPermission().GetPermissionById(ctx, req.Id) 25 return (*sys_model.SysPermissionInfoRes)(result), err 26 } 27 28 // GetPermissionByIdentifier 根据权限标识符获取权限|信息 29 func (c *cSysPermission) GetPermissionByIdentifier(ctx context.Context, req *sys_api.GetPermissionByIdentifierReq) (*sys_model.SysPermissionInfoRes, error) { 30 // 权限判断 31 if has, err := sys_service.SysPermission().CheckPermission(ctx, sys_enum.Permissions.PermissionType.ViewDetail); has != true { 32 return nil, err 33 } 34 35 result, err := sys_service.SysPermission().GetPermissionByIdentifier(ctx, req.Identifier) 36 return (*sys_model.SysPermissionInfoRes)(result), err 37 } 38 39 // QueryPermissionListReq 查询权限|列表 40 func (c *cSysPermission) QueryPermissionListReq(ctx context.Context, req *sys_api.QueryPermissionListReq) (*sys_model.SysPermissionInfoListRes, error) { 41 // 权限判断 42 if has, err := sys_service.SysPermission().CheckPermission(ctx, sys_enum.Permissions.PermissionType.List); has != true { 43 return nil, err 44 } 45 46 return sys_service.SysPermission().QueryPermissionList(ctx, req.SearchParams) 47 } 48 49 // GetPermissionList 根据ID获取下级权限|列表 50 // func (c *cSysPermission) GetPermissionList(ctx context.Context, req *sys_api.GetPermissionListReq) (*sys_api.SysPermissionInfoListRes, error) { 51 // data, err := sys_service.SysPermission().GetPermissionList(ctx, req.Id, req.IsRecursive) 52 // if err != nil { 53 // return nil, err 54 // } 55 // 56 // count := len(*data) 57 // 58 // return &sys_api.SysPermissionInfoListRes{ 59 // List: data, 60 // PaginationRes: model.PaginationRes{ 61 // Pagination: model.Pagination{ 62 // Page: 1, 63 // PageSize: count, 64 // }, 65 // PageTotal: 1, 66 // }, 67 // }, err 68 // } 69 70 // GetPermissionTree 根据ID获取下级权限|树 71 func (c *cSysPermission) GetPermissionTree(ctx context.Context, req *sys_api.GetPermissionTreeReq) (*sys_model.SysPermissionInfoTreeRes, error) { 72 // 权限判断 73 if has, err := sys_service.SysPermission().CheckPermission(ctx, sys_enum.Permissions.PermissionType.List); has != true { 74 return nil, err 75 } 76 77 result, err := sys_service.SysPermission().GetPermissionTree(ctx, req.Id, req.Type) 78 79 return (*sys_model.SysPermissionInfoTreeRes)(&result), err 80 81 //return kconv.Struct(result, &sys_model.SysPermissionInfoTreeRes{}), err 82 } 83 84 // CreatePermission 新增权限|信息 85 func (c *cSysPermission) CreatePermission(ctx context.Context, req *sys_api.CreatePermissionReq) (*sys_model.SysPermissionInfoRes, error) { 86 // 权限判断 87 if has, err := sys_service.SysPermission().CheckPermission(ctx, sys_enum.Permissions.PermissionType.Create); has != true { 88 return nil, err 89 } 90 91 result, err := sys_service.SysPermission().CreatePermission(ctx, req.SysPermission) 92 return (*sys_model.SysPermissionInfoRes)(result), err 93 } 94 95 // UpdatePermission 更新权限|信息 96 func (c *cSysPermission) UpdatePermission(ctx context.Context, req *sys_api.UpdatePermissionReq) (*sys_model.SysPermissionInfoRes, error) { 97 // 权限判断 98 if has, err := sys_service.SysPermission().CheckPermission(ctx, sys_enum.Permissions.PermissionType.Update); has != true { 99 return nil, err 100 } 101 102 result, err := sys_service.SysPermission().UpdatePermission(ctx, &req.UpdateSysPermission) 103 return (*sys_model.SysPermissionInfoRes)(result), err 104 } 105 106 // DeletePermission 删除权限 107 func (c *cSysPermission) DeletePermission(ctx context.Context, req *sys_api.DeletePermissionReq) (api_v1.BoolRes, error) { 108 // 权限判断 109 if has, err := sys_service.SysPermission().CheckPermission(ctx, sys_enum.Permissions.PermissionType.Delete); has != true { 110 return false, err 111 } 112 113 result, err := sys_service.SysPermission().DeletePermission(ctx, req.Id) 114 return result == true, err 115 }