script_svc

package
v1.0.1-0...-a3844e9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2024 License: GPL-3.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrRoleIsNil = errors.New("role is nil")

Functions

func SetDefaultAccessInvite

func SetDefaultAccessInvite()

Types

type AccessInviteSvc

type AccessInviteSvc interface {
	// InviteCodeList 邀请码列表
	InviteCodeList(ctx context.Context, req *api.InviteCodeListRequest) (*api.InviteCodeListResponse, error)
	// CreateInviteLink 创建邀请链接
	CreateInviteLink(ctx context.Context, entity *script_entity.ScriptInvite) (*script_entity.ScriptInvite, error)
	// CreateInviteCode 创建邀请码
	CreateInviteCode(ctx context.Context, req *api.CreateInviteCodeRequest) (*api.CreateInviteCodeResponse, error)
	// DeleteInviteCode 删除邀请码
	DeleteInviteCode(ctx context.Context, req *api.DeleteInviteCodeRequest) (*api.DeleteInviteCodeResponse, error)
	// AuditInviteCode 审核邀请码
	AuditInviteCode(ctx context.Context, req *api.AuditInviteCodeRequest) (*api.AuditInviteCodeResponse, error)
	// AcceptInvite 接受邀请
	AcceptInvite(ctx context.Context, req *api.AcceptInviteRequest) (*api.AcceptInviteResponse, error)
	// GroupInviteCodeList 群组邀请码列表
	GroupInviteCodeList(ctx context.Context, req *api.GroupInviteCodeListRequest) (*api.GroupInviteCodeListResponse, error)
	// CreateGroupInviteCode 创建群组邀请码
	CreateGroupInviteCode(ctx context.Context, req *api.CreateGroupInviteCodeRequest) (*api.CreateGroupInviteCodeResponse, error)
	// InviteCodeInfo 邀请码信息
	InviteCodeInfo(ctx context.Context, req *api.InviteCodeInfoRequest) (*api.InviteCodeInfoResponse, error)
}

func AccessInvite

func AccessInvite() AccessInviteSvc

func NewAccessInviteSvc

func NewAccessInviteSvc() AccessInviteSvc

type AccessSvc

type AccessSvc interface {
	// AccessList 访问控制列表
	AccessList(ctx context.Context, req *api.AccessListRequest) (*api.AccessListResponse, error)
	// UpdateAccess 更新访问控制
	UpdateAccess(ctx context.Context, req *api.UpdateAccessRequest) (*api.UpdateAccessResponse, error)
	// DeleteAccess 删除访问控制
	DeleteAccess(ctx context.Context, req *api.DeleteAccessRequest) (*api.DeleteAccessResponse, error)
	// Check 检查是否有访问权限
	Check(ctx context.Context, res, act string) (*CheckAccess, error)
	// CheckHandler 检查是否有访问权限中间件
	CheckHandler(res, act string, opts ...CheckOption) gin.HandlerFunc
	// RequireAccess 需要权限存在
	RequireAccess() gin.HandlerFunc
	// CtxAccess 获取访问权限
	CtxAccess(ctx context.Context) *script_entity.ScriptAccess
	// AddGroupAccess 添加组权限
	AddGroupAccess(ctx context.Context, req *api.AddGroupAccessRequest) (*api.AddGroupAccessResponse, error)
	// AddUserAccess 添加用户权限, 通过用户名进行邀请
	AddUserAccess(ctx context.Context, req *api.AddUserAccessRequest) (*api.AddUserAccessResponse, error)
	// AddAccess 添加权限 内部用
	AddAccess(ctx context.Context, entity *script_entity.ScriptAccess) error
	// GetRole 获取用户角色
	GetRole(ctx context.Context, user *model.AuthInfo,
		script *script_entity.Script) ([]script_entity.AccessRole, error)
}

func Access

func Access() AccessSvc

type CheckAccess

type CheckAccess struct {
	Roles     []script_entity.AccessRole
	AccessMap map[string]map[string]struct{}
}

func (*CheckAccess) Check

func (a *CheckAccess) Check(ctx context.Context, res, act string) error

type CheckOption

type CheckOption func(*CheckOptions)

func WithCheckSkip

func WithCheckSkip(f func(ctx *gin.Context) (bool, error)) CheckOption

type CheckOptions

type CheckOptions struct {
	Skip func(ctx *gin.Context) (bool, error)
}

type GroupSvc

type GroupSvc interface {
	// GroupList 群组列表
	GroupList(ctx context.Context, req *api.GroupListRequest) (*api.GroupListResponse, error)
	// CreateGroup 创建群组
	CreateGroup(ctx context.Context, req *api.CreateGroupRequest) (*api.CreateGroupResponse, error)
	// UpdateGroup 更新群组
	UpdateGroup(ctx context.Context, req *api.UpdateGroupRequest) (*api.UpdateGroupResponse, error)
	// DeleteGroup 删除群组
	DeleteGroup(ctx context.Context, req *api.DeleteGroupRequest) (*api.DeleteGroupResponse, error)
	// GroupMemberList 群组成员列表
	GroupMemberList(ctx context.Context, req *api.GroupMemberListRequest) (*api.GroupMemberListResponse, error)
	// AddMember 添加成员
	AddMember(ctx context.Context, req *api.AddMemberRequest) (*api.AddMemberResponse, error)
	// AddMemberInternal 添加成员 内部调用
	AddMemberInternal(ctx context.Context, entity *script_entity.ScriptGroupMember) error
	// RemoveMember 移除成员
	RemoveMember(ctx context.Context, req *api.RemoveMemberRequest) (*api.RemoveMemberResponse, error)
	// RequireGroup 需要群组存在
	RequireGroup() gin.HandlerFunc
	// CtxGroup 获取群组
	CtxGroup(c context.Context) *script_entity.ScriptGroup
	// RequireMember 需要成员存在
	RequireMember() gin.HandlerFunc
	// CtxMember 获取成员
	CtxMember(c context.Context) *script_entity.ScriptGroupMember
	// UpdateMember 更新成员
	UpdateMember(ctx context.Context, req *api.UpdateMemberRequest) (*api.UpdateMemberResponse, error)
}

func Group

func Group() GroupSvc

type RequireScriptOption

type RequireScriptOption func(*RequireScriptOptions)

func WithRequireScriptAccess

func WithRequireScriptAccess(res, act string) RequireScriptOption

type RequireScriptOptions

type RequireScriptOptions struct {
	Resource string
	Action   string
}

type ScoreSvc

type ScoreSvc interface {
	// PutScore 脚本评分
	PutScore(ctx context.Context, req *api.PutScoreRequest) (*api.PutScoreResponse, error)
	// ScoreList 获取脚本评分列表
	ScoreList(ctx context.Context, req *api.ScoreListRequest) (*api.ScoreListResponse, error)
	// SelfScore 用于获取自己对脚本的评价
	SelfScore(ctx context.Context, req *api.SelfScoreRequest) (*api.SelfScoreResponse, error)
	// DelScore 用于删除脚本的评价,注意,只有管理员才有权限删除评价
	DelScore(ctx context.Context, req *api.DelScoreRequest) (*api.DelScoreResponse, error)
}

func Score

func Score() ScoreSvc

type ScriptSvc

type ScriptSvc interface {
	// List 获取脚本列表
	List(ctx context.Context, req *api.ListRequest) (*api.ListResponse, error)
	// Create 创建脚本/库
	Create(ctx context.Context, req *api.CreateRequest) (*api.CreateResponse, error)
	// UpdateCode 更新脚本/库代码
	UpdateCode(ctx context.Context, req *api.UpdateCodeRequest) (*api.UpdateCodeResponse, error)
	// MigrateEs 全量迁移数据到es
	MigrateEs()
	// GetCode 获取脚本代码,version为latest时获取最新版本
	GetCode(ctx context.Context, id int64, version string) (*script_entity.Code, error)
	// Info 获取脚本信息
	Info(ctx context.Context, req *api.InfoRequest) (*api.InfoResponse, error)
	// Code 获取脚本代码
	Code(ctx context.Context, req *api.CodeRequest) (*api.CodeResponse, error)
	// VersionList 获取版本列表
	VersionList(ctx context.Context, req *api.VersionListRequest) (*api.VersionListResponse, error)
	// VersionCode 获取指定版本代码
	VersionCode(ctx context.Context, req *api.VersionCodeRequest) (*api.VersionCodeResponse, error)
	// State 脚本关注等
	State(ctx context.Context, req *api.StateRequest) (*api.StateResponse, error)
	// Watch 关注脚本
	Watch(ctx context.Context, req *api.WatchRequest) (*api.WatchResponse, error)
	// GetSetting 获取脚本设置
	GetSetting(ctx context.Context, req *api.GetSettingRequest) (*api.GetSettingResponse, error)
	// UpdateSetting 更新脚本设置
	UpdateSetting(ctx context.Context, req *api.UpdateSettingRequest) (*api.UpdateSettingResponse, error)
	// SyncOnce 同步一次
	SyncOnce(ctx context.Context, script *script_entity.Script, forceSyncMarkdown bool) error
	// Archive 归档脚本
	Archive(ctx context.Context, req *api.ArchiveRequest) (*api.ArchiveResponse, error)
	// Delete 删除脚本
	Delete(ctx context.Context, req *api.DeleteRequest) (*api.DeleteResponse, error)
	// ToScript 转换为script response结构
	ToScript(ctx context.Context, item *script_entity.Script, withcode bool, version string) (*api.Script, error)
	// GetCodeByGray 根据灰度逻辑获取脚本代码
	GetCodeByGray(ctx *gin.Context, scriptId int64, isPreUser bool) (*script_entity.Code, error)
	// UpdateCodeSetting 更新脚本设置
	UpdateCodeSetting(ctx context.Context, req *api.UpdateCodeSettingRequest) (*api.UpdateCodeSettingResponse, error)
	// CtxScript 获取脚本
	CtxScript(ctx context.Context) *script_entity.Script
	// UpdateScriptPublic 更新脚本公开类型
	UpdateScriptPublic(ctx context.Context, req *api.UpdateScriptPublicRequest) (*api.UpdateScriptPublicResponse, error)
	// UpdateScriptUnwell 更新脚本不适内容
	UpdateScriptUnwell(ctx context.Context, req *api.UpdateScriptUnwellRequest) (*api.UpdateScriptUnwellResponse, error)
	// UpdateScriptGray 更新脚本灰度策略
	UpdateScriptGray(ctx context.Context, req *api.UpdateScriptGrayRequest) (*api.UpdateScriptGrayResponse, error)
	// DeleteCode 删除脚本/库代码
	DeleteCode(ctx context.Context, req *api.DeleteCodeRequest) (*api.DeleteCodeResponse, error)
	// Webhook 处理webhook请求
	Webhook(ctx context.Context, req *api.WebhookRequest, body []byte) (*api.WebhookResponse, error)
	// LastScore 最新评分脚本
	LastScore(ctx context.Context, req *api.LastScoreRequest) (*api.LastScoreResponse, error)
	// UpdateLibInfo 更新库信息
	UpdateLibInfo(ctx context.Context, req *api.UpdateLibInfoRequest) (*api.UpdateLibInfoResponse, error)
	// UpdateSyncSetting 更新同步配置
	UpdateSyncSetting(ctx context.Context, req *api.UpdateSyncSettingRequest) (*api.UpdateSyncSettingResponse, error)
	// Access 访问控制
	Access() gin.HandlerFunc
	// RequireScript 需要脚本存在
	RequireScript(opts ...RequireScriptOption) gin.HandlerFunc
	// IsArchive 检查归档
	IsArchive() gin.HandlerFunc
}

func Script

func Script() ScriptSvc

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL