Documentation
¶
Index ¶
- Variables
- func RegisterServices() fx.Option
- func VerifyPassword(password, hashedPassword string) bool
- type APIService
- func (s *APIService) Create(ctx context.Context, api *model.API) error
- func (s *APIService) Delete(ctx context.Context, id uint) error
- func (s *APIService) GetAll(ctx context.Context) ([]*model.API, error)
- func (s *APIService) GetByID(ctx context.Context, id uint) (*model.API, error)
- func (s *APIService) GetByMenuID(ctx context.Context, menuID uint) ([]*model.API, error)
- func (s *APIService) GetByPath(ctx context.Context, path string, method string) (*model.API, error)
- func (s *APIService) Update(ctx context.Context, api *model.API) error
- type AdminService
- type AdminUserService
- func (s *AdminUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
- func (s *AdminUserService) RefreshToken(ctx context.Context, refreshToken string) (*v1.LoginResponse, error)
- func (s *AdminUserService) VerifyPassword(password, hashedPassword string) bool
- type AdminUserServiceInterface
- type AuthService
- func (s *AuthService) CreateLoginResponse(accessToken, refreshToken string) *v1.LoginResponse
- func (s *AuthService) CreateLoginResponseWithContext(ctx context.Context, accessToken, refreshToken string) *v1.LoginResponse
- func (s *AuthService) GenerateAccessToken(userID uint, username string, userType enum.UserType, roles []string) (string, error)
- func (s *AuthService) GenerateAccessTokenWithContext(ctx context.Context, userID uint, username string, userType enum.UserType, ...) (string, error)
- func (s *AuthService) GenerateTokens(userID uint, username string, userType enum.UserType, roles []string) (*v1.LoginResponse, error)
- func (s *AuthService) GenerateTokensWithContext(ctx context.Context, userID uint, username string, userType enum.UserType, ...) (*v1.LoginResponse, error)
- func (s *AuthService) ParseRefreshToken(refreshToken string) (*jwtpkg.CustomClaims, error)
- func (s *AuthService) ValidateRefreshToken(refreshToken string) (*jwtpkg.CustomClaims, error)
- func (s *AuthService) ValidateRefreshTokenWithContext(ctx context.Context, refreshToken string) (*jwtpkg.CustomClaims, error)
- type ErrorMonitorService
- type ErrorStat
- type FileService
- func (s *FileService) DeleteFile(ctx context.Context, id string, currentUserID int64, ...) error
- func (s *FileService) GetFile(ctx context.Context, id string, currentUserID int64, ...) (*model.File, error)
- func (s *FileService) GetFileContent(ctx context.Context, id string, currentUserID int64, ...) (io.ReadCloser, string, error)
- func (s *FileService) UpdateAdminUserAvatar(ctx context.Context, userID int64, fileHeader *multipart.FileHeader) (string, error)
- func (s *FileService) UpdateUserAvatar(ctx context.Context, userID int64, fileHeader *multipart.FileHeader) (string, error)
- func (s *FileService) UploadFile(ctx context.Context, fileHeader *multipart.FileHeader, fileType string, ...) (*model.File, error)
- type MenuAPIService
- func (s *MenuAPIService) AssignAPIsToMenu(ctx context.Context, menuID uint, apiIDs []uint) error
- func (s *MenuAPIService) AssignMenuToRole(ctx context.Context, roleID uint, menuIDs []uint) error
- func (s *MenuAPIService) GetAPIRoles(ctx context.Context, apiID uint) ([]*model.Role, error)
- func (s *MenuAPIService) GetMenuAPIs(ctx context.Context, menuID uint) ([]*model.API, error)
- func (s *MenuAPIService) SyncMenuAPIPermissions(ctx context.Context) error
- type MenuService
- func (s *MenuService) AssignMenuToRole(ctx context.Context, roleID uint, menuIDs []uint) error
- func (s *MenuService) CreateMenu(ctx context.Context, menu *model.Menu) error
- func (s *MenuService) DeleteMenu(ctx context.Context, id uint) error
- func (s *MenuService) GetMenuByID(ctx context.Context, id uint) (*model.Menu, error)
- func (s *MenuService) GetMenuPermsByUserID(ctx context.Context, userID uint) ([]string, error)
- func (s *MenuService) GetMenuTree(ctx context.Context) ([]*model.MenuTree, error)
- func (s *MenuService) GetMenus(ctx context.Context) ([]model.Menu, error)
- func (s *MenuService) GetMenusByRoleID(ctx context.Context, roleID uint) ([]model.Menu, error)
- func (s *MenuService) GetUserMenuTree(ctx context.Context, userID string, roles []model.Role) ([]*model.MenuTree, error)
- func (s *MenuService) GetUserMenus(ctx context.Context, userID int64) ([]*model.MenuTree, error)
- func (s *MenuService) UpdateMenu(ctx context.Context, menu *model.Menu) error
- type MenuServiceInterface
- type OperationLogService
- func (s *OperationLogService) BatchDeleteOperationLogs(ctx context.Context, ids []uint) error
- func (s *OperationLogService) CreateSysUserLog(c *gin.Context, userID int64, username string, ...) error
- func (s *OperationLogService) CreateSysUserLogWithContext(ctx context.Context, c *gin.Context, userID int64, username string, ...) error
- func (s *OperationLogService) CreateUserLog(c *gin.Context, userID int64, username string, ...) error
- func (s *OperationLogService) CreateUserLogWithContext(ctx context.Context, c *gin.Context, userID int64, username string, ...) error
- func (s *OperationLogService) DeleteOperationLog(ctx context.Context, id uint) error
- func (s *OperationLogService) GetOperationLogs(ctx context.Context, query *v1.OperationLogQuery) (*PageResult, error)
- type PageResult
- type PermissionService
- func (s *PermissionService) AssignPermissionToRole(ctx context.Context, roleID uint, permissionIDs []uint) error
- func (s *PermissionService) AssignRolesToUser(ctx context.Context, userID string, roleIDs []uint) error
- func (s *PermissionService) CheckPermission(ctx context.Context, userID string, obj string, act string) (bool, error)
- func (s *PermissionService) CreatePermission(ctx context.Context, permission *model.Permission) error
- func (s *PermissionService) DeletePermission(ctx context.Context, id uint) error
- func (s *PermissionService) GetPermission(ctx context.Context, id uint64) (*model.Permission, error)
- func (s *PermissionService) GetPermissionByID(ctx context.Context, id uint) (*model.Permission, error)
- func (s *PermissionService) GetPermissions(ctx context.Context) ([]model.Permission, error)
- func (s *PermissionService) GetPermissionsByRoleID(ctx context.Context, roleID uint) ([]model.Permission, error)
- func (s *PermissionService) GetPermissionsByUserID(ctx context.Context, userID uint) ([]model.Permission, error)
- func (s *PermissionService) GetUserMenus(ctx context.Context, userID int64) ([]*model.MenuTree, error)
- func (s *PermissionService) GetUserRoles(ctx context.Context, userID string) ([]model.Role, error)
- func (s *PermissionService) UpdatePermission(ctx context.Context, permission *model.Permission) error
- func (s *PermissionService) UpdatePermissionSettings(ctx context.Context, enabled, defaultAllow bool) error
- type PermissionServiceInterface
- type RoleService
- func (s *RoleService) AssignMenusToRole(ctx context.Context, roleID uint, menuIDs []uint) error
- func (s *RoleService) AssignRolesToUser(ctx context.Context, userID int64, roleIDs []uint) error
- func (s *RoleService) CreateRole(ctx context.Context, role *model.Role) error
- func (s *RoleService) DeleteRole(ctx context.Context, id uint) error
- func (s *RoleService) DeleteRolePermission(ctx context.Context, roleCode string, obj string, act string) error
- func (s *RoleService) GetRoleByID(ctx context.Context, id uint) (*model.Role, error)
- func (s *RoleService) GetRoleMenuIDs(ctx context.Context, roleID uint) ([]uint, error)
- func (s *RoleService) GetRoles(ctx context.Context) ([]model.Role, error)
- func (s *RoleService) GetUserRoleIDs(ctx context.Context, userID uint) ([]uint, error)
- func (s *RoleService) SetRolePermission(ctx context.Context, roleCode string, obj string, act string) error
- func (s *RoleService) UpdateRole(ctx context.Context, role *model.Role) error
- type RoleServiceInterface
- type SeparateAdminUserService
- func (s *SeparateAdminUserService) GetUserInfo(ctx context.Context, id int64) (interface{}, error)
- func (s *SeparateAdminUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
- func (s *SeparateAdminUserService) RefreshToken(ctx context.Context, refreshToken string) (*v1.LoginResponse, error)
- func (s *SeparateAdminUserService) VerifyPassword(password, hashedPassword string) bool
- type SeparateUserService
- func (s *SeparateUserService) ChangePassword(ctx context.Context, id int64, oldPassword, newPassword string) error
- func (s *SeparateUserService) GetUserByID(ctx context.Context, id int64) (*model.User, error)
- func (s *SeparateUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
- func (s *SeparateUserService) Register(ctx context.Context, req v1.UserRegisterRequest, registerIP string, ...) (*model.User, error)
- func (s *SeparateUserService) UpdateUser(ctx context.Context, id uint, data map[string]any) error
- func (s *SeparateUserService) VerifyPassword(password, hashedPassword string) bool
- type ServiceParams
- type SimpleAdminUserService
- func (s *SimpleAdminUserService) GetUserInfo(ctx context.Context, id int64) (interface{}, error)
- func (s *SimpleAdminUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
- func (s *SimpleAdminUserService) RefreshToken(ctx context.Context, refreshToken string) (*v1.LoginResponse, error)
- func (s *SimpleAdminUserService) VerifyPassword(password, hashedPassword string) bool
- type SimpleUserService
- func (s *SimpleUserService) ChangePassword(ctx context.Context, id int64, oldPassword, newPassword string) error
- func (s *SimpleUserService) GetUserByID(ctx context.Context, id int64) (*model.User, error)
- func (s *SimpleUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
- func (s *SimpleUserService) Register(ctx context.Context, req v1.UserRegisterRequest, registerIP string, ...) (*model.User, error)
- func (s *SimpleUserService) UpdateUser(ctx context.Context, id uint, data map[string]any) error
- func (s *SimpleUserService) VerifyPassword(password, hashedPassword string) bool
- type UserService
- func (s *UserService) ChangePassword(ctx context.Context, id int64, oldPassword, newPassword string) error
- func (s *UserService) GetUserByID(ctx context.Context, id int64) (*model.User, error)
- func (s *UserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
- func (s *UserService) Register(ctx context.Context, req v1.UserRegisterRequest, registerIP string, ...) (*model.User, error)
- func (s *UserService) RegisterAdmin(ctx context.Context, req v1.UserRegisterRequest, registerIP string) (*model.User, error)
- func (s *UserService) UpdateUser(ctx context.Context, id uint, data map[string]any) error
- func (s *UserService) VerifyPassword(password, hashedPassword string) bool
- type UserServiceInterface
Constants ¶
This section is empty.
Variables ¶
var Module = fx.Options( fx.Provide(NewAuthService), fx.Provide(NewMenuAPIService), fx.Provide(NewOperationLogService), fx.Provide(NewFileService), fx.Provide(NewAPIService), fx.Provide(NewAdminService), fx.Provide(ProvideUserService), fx.Provide(ProvideAdminUserService), fx.Provide(ProvideRoleService), fx.Provide(ProvideMenuService), fx.Provide(ProvidePermissionService), )
Module 服务模块
Functions ¶
func VerifyPassword ¶
VerifyPassword 验证用户密码 直接使用 crypto.CheckPassword,避免在多个服务中重复实现
Types ¶
type APIService ¶
type APIService struct {
// contains filtered or unexported fields
}
APIService API服务
func NewAPIService ¶
func NewAPIService(apiRepo *repository.APIRepo) *APIService
NewAPIService 创建API服务
func (*APIService) Delete ¶
func (s *APIService) Delete(ctx context.Context, id uint) error
Delete 删除API
func (*APIService) GetByMenuID ¶
GetByMenuID 获取菜单关联的API
type AdminService ¶
type AdminService struct {
// contains filtered or unexported fields
}
AdminService 管理系统服务
func NewAdminService ¶
func NewAdminService(params ServiceParams) *AdminService
NewAdminService 创建管理系统服务
func (*AdminService) GetSystemSettings ¶
func (s *AdminService) GetSystemSettings(ctx context.Context) map[string]any
GetSystemSettings 获取系统设置
type AdminUserService ¶
type AdminUserService struct {
// contains filtered or unexported fields
}
AdminUserService 管理员用户服务
func NewAdminUserService ¶
func NewAdminUserService(adminUserRepo *repository.AdminUserRepo, userRepo *repository.UserRepo, roleService *RoleService, casbinService casbin.Service, config *configs.Config) *AdminUserService
NewAdminUserService 创建管理员用户服务
func (*AdminUserService) Login ¶
func (s *AdminUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
Login 管理员用户登录
func (*AdminUserService) RefreshToken ¶
func (s *AdminUserService) RefreshToken(ctx context.Context, refreshToken string) (*v1.LoginResponse, error)
RefreshToken 刷新访问令牌
func (*AdminUserService) VerifyPassword ¶
func (s *AdminUserService) VerifyPassword(password, hashedPassword string) bool
VerifyPassword 验证用户密码
type AdminUserServiceInterface ¶
type AdminUserServiceInterface interface {
// 管理员登录
Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
// 刷新令牌
RefreshToken(ctx context.Context, refreshToken string) (*v1.LoginResponse, error)
// 获取管理员用户信息
GetUserInfo(ctx context.Context, id int64) (interface{}, error)
}
AdminUserServiceInterface 管理员用户服务接口 定义管理员用户服务的通用方法,不同模式下的实现可能不同
func ProvideAdminUserService ¶
func ProvideAdminUserService(params ServiceParams, casbinService casbin.Service, authService *AuthService) AdminUserServiceInterface
ProvideAdminUserService 根据用户模式提供管理员用户服务
type AuthService ¶
type AuthService struct {
// contains filtered or unexported fields
}
AuthService 认证服务,处理通用的认证逻辑
func NewAuthService ¶
func NewAuthService(config *configs.Config) *AuthService
NewAuthService 创建认证服务
func (*AuthService) CreateLoginResponse ¶
func (s *AuthService) CreateLoginResponse(accessToken, refreshToken string) *v1.LoginResponse
CreateLoginResponse 创建登录响应
func (*AuthService) CreateLoginResponseWithContext ¶
func (s *AuthService) CreateLoginResponseWithContext(ctx context.Context, accessToken, refreshToken string) *v1.LoginResponse
CreateLoginResponseWithContext 使用上下文创建登录响应
func (*AuthService) GenerateAccessToken ¶
func (s *AuthService) GenerateAccessToken(userID uint, username string, userType enum.UserType, roles []string) (string, error)
GenerateAccessToken 只生成访问令牌 用于刷新令牌时只需要生成新的访问令牌
func (*AuthService) GenerateAccessTokenWithContext ¶
func (s *AuthService) GenerateAccessTokenWithContext(ctx context.Context, userID uint, username string, userType enum.UserType, roles []string) (string, error)
GenerateAccessTokenWithContext 使用上下文只生成访问令牌
func (*AuthService) GenerateTokens ¶
func (s *AuthService) GenerateTokens(userID uint, username string, userType enum.UserType, roles []string) (*v1.LoginResponse, error)
GenerateTokens 生成访问令牌和刷新令牌 提取通用的令牌生成逻辑
func (*AuthService) GenerateTokensWithContext ¶
func (s *AuthService) GenerateTokensWithContext(ctx context.Context, userID uint, username string, userType enum.UserType, roles []string) (*v1.LoginResponse, error)
GenerateTokensWithContext 使用上下文生成访问令牌和刷新令牌
func (*AuthService) ParseRefreshToken ¶
func (s *AuthService) ParseRefreshToken(refreshToken string) (*jwtpkg.CustomClaims, error)
ParseRefreshToken 解析刷新令牌
func (*AuthService) ValidateRefreshToken ¶
func (s *AuthService) ValidateRefreshToken(refreshToken string) (*jwtpkg.CustomClaims, error)
ValidateRefreshToken 验证刷新令牌
func (*AuthService) ValidateRefreshTokenWithContext ¶
func (s *AuthService) ValidateRefreshTokenWithContext(ctx context.Context, refreshToken string) (*jwtpkg.CustomClaims, error)
ValidateRefreshTokenWithContext 使用上下文验证刷新令牌
type ErrorMonitorService ¶
type ErrorMonitorService struct {
// contains filtered or unexported fields
}
ErrorMonitorService 错误监控服务
func NewErrorMonitorService ¶
func NewErrorMonitorService() *ErrorMonitorService
NewErrorMonitorService 创建错误监控服务
func (*ErrorMonitorService) GetErrorStats ¶
func (s *ErrorMonitorService) GetErrorStats(ctx context.Context) map[int]*ErrorStat
GetErrorStats 获取错误统计信息
func (*ErrorMonitorService) RecordError ¶
func (s *ErrorMonitorService) RecordError(ctx context.Context, err error)
RecordError 记录错误
func (*ErrorMonitorService) ResetStats ¶
func (s *ErrorMonitorService) ResetStats(ctx context.Context)
ResetStats 重置统计信息
func (*ErrorMonitorService) SetThreshold ¶
func (s *ErrorMonitorService) SetThreshold(ctx context.Context, threshold int)
SetThreshold 设置报警阈值
type ErrorStat ¶
type ErrorStat struct {
Code int // 错误码
Count int // 出现次数
FirstSeen time.Time // 首次出现时间
LastSeen time.Time // 最后出现时间
}
ErrorStat 错误统计信息
type FileService ¶
type FileService struct {
// contains filtered or unexported fields
}
FileService 文件服务
func NewFileService ¶
func NewFileService(storage *filestore.Storage, fileRepo *repository.FileRepo, userRepo *repository.UserRepo, adminUserRepo *repository.AdminUserRepo) *FileService
NewFileService 创建文件服务
func (*FileService) DeleteFile ¶
func (s *FileService) DeleteFile(ctx context.Context, id string, currentUserID int64, currentUserType enum.UserType) error
DeleteFile 删除文件
func (*FileService) GetFile ¶
func (s *FileService) GetFile(ctx context.Context, id string, currentUserID int64, currentUserType enum.UserType) (*model.File, error)
GetFile 获取文件信息
func (*FileService) GetFileContent ¶
func (s *FileService) GetFileContent(ctx context.Context, id string, currentUserID int64, currentUserType enum.UserType) (io.ReadCloser, string, error)
获取文件内容
func (*FileService) UpdateAdminUserAvatar ¶
func (s *FileService) UpdateAdminUserAvatar(ctx context.Context, userID int64, fileHeader *multipart.FileHeader) (string, error)
UpdateAdminUserAvatar 更新管理员用户头像
func (*FileService) UpdateUserAvatar ¶
func (s *FileService) UpdateUserAvatar(ctx context.Context, userID int64, fileHeader *multipart.FileHeader) (string, error)
UpdateUserAvatar 更新用户头像
func (*FileService) UploadFile ¶
func (s *FileService) UploadFile(ctx context.Context, fileHeader *multipart.FileHeader, fileType string, uploaderID int64, userType enum.UserType, isPublic bool) (*model.File, error)
UploadFile 上传文件
type MenuAPIService ¶
type MenuAPIService struct {
// contains filtered or unexported fields
}
MenuAPIService 菜单API关联服务
func NewMenuAPIService ¶
func NewMenuAPIService( menuRepo *repository.MenuRepo, apiRepo *repository.APIRepo, roleRepo *repository.RoleRepo, permissionRepo *repository.PermissionRepo, casbinService casbin.Service, ) *MenuAPIService
NewMenuAPIService 创建菜单API关联服务
func (*MenuAPIService) AssignAPIsToMenu ¶
AssignAPIsToMenu 为菜单分配API 将API关联到菜单,并自动创建权限记录,同时将权限同步到Casbin
func (*MenuAPIService) AssignMenuToRole ¶
AssignMenuToRole 为角色分配菜单时,同步分配API权限 将菜单关联到角色,并自动同步菜单关联的API权限到Casbin
func (*MenuAPIService) GetAPIRoles ¶
GetAPIRoles 获取API关联的所有角色 返回API关联的所有菜单的角色列表
func (*MenuAPIService) GetMenuAPIs ¶
GetMenuAPIs 获取菜单关联的所有API 返回菜单关联的所有API列表
func (*MenuAPIService) SyncMenuAPIPermissions ¶
func (s *MenuAPIService) SyncMenuAPIPermissions(ctx context.Context) error
SyncMenuAPIPermissions 同步所有菜单API权限到Casbin 遍历所有菜单和角色,将菜单关联的API权限同步到Casbin
type MenuService ¶
type MenuService struct {
// contains filtered or unexported fields
}
MenuService 菜单服务
func NewMenuService ¶
func NewMenuService(params ServiceParams, casbinService casbin.Service) *MenuService
NewMenuService 创建菜单服务
func (*MenuService) AssignMenuToRole ¶
AssignMenuToRole 为角色分配菜单
func (*MenuService) CreateMenu ¶
CreateMenu 创建菜单
func (*MenuService) DeleteMenu ¶
func (s *MenuService) DeleteMenu(ctx context.Context, id uint) error
DeleteMenu 删除菜单
func (*MenuService) GetMenuByID ¶
GetMenuByID 根据ID获取菜单
func (*MenuService) GetMenuPermsByUserID ¶
GetMenuPermsByUserID 获取用户菜单权限标识
func (*MenuService) GetMenuTree ¶
GetMenuTree 获取菜单树(用于前端菜单选择)
func (*MenuService) GetMenusByRoleID ¶
GetMenusByRoleID 获取角色菜单
func (*MenuService) GetUserMenuTree ¶
func (s *MenuService) GetUserMenuTree(ctx context.Context, userID string, roles []model.Role) ([]*model.MenuTree, error)
GetUserMenuTree 获取用户菜单树
func (*MenuService) GetUserMenus ¶
GetUserMenus 获取用户菜单
func (*MenuService) UpdateMenu ¶
UpdateMenu 更新菜单
type MenuServiceInterface ¶
type MenuServiceInterface interface {
// 菜单相关方法
CreateMenu(ctx context.Context, menu *model.Menu) error
UpdateMenu(ctx context.Context, menu *model.Menu) error
DeleteMenu(ctx context.Context, id uint) error
GetMenuByID(ctx context.Context, id uint) (*model.Menu, error)
GetMenus(ctx context.Context) ([]model.Menu, error)
GetMenuTree(ctx context.Context) ([]*model.MenuTree, error)
GetUserMenus(ctx context.Context, userID int64) ([]*model.MenuTree, error)
// 角色菜单相关方法
GetMenusByRoleID(ctx context.Context, roleID uint) ([]model.Menu, error)
AssignMenuToRole(ctx context.Context, roleID uint, menuIDs []uint) error
// 权限相关方法
GetMenuPermsByUserID(ctx context.Context, userID uint) ([]string, error)
}
MenuServiceInterface 菜单服务接口
func ProvideMenuService ¶
func ProvideMenuService(params ServiceParams, casbinService casbin.Service) MenuServiceInterface
ProvideMenuService 根据用户模式提供菜单服务
type OperationLogService ¶
type OperationLogService struct {
// contains filtered or unexported fields
}
OperationLogService 操作日志服务
func NewOperationLogService ¶
func NewOperationLogService(logRepo *repository.OperationLogRepo) *OperationLogService
NewOperationLogService 创建操作日志服务
func (*OperationLogService) BatchDeleteOperationLogs ¶
func (s *OperationLogService) BatchDeleteOperationLogs(ctx context.Context, ids []uint) error
BatchDeleteOperationLogs 批量删除操作日志
func (*OperationLogService) CreateSysUserLog ¶
func (s *OperationLogService) CreateSysUserLog(c *gin.Context, userID int64, username string, module, action, description string, startTime time.Time) error
CreateSysUserLog 创建系统用户操作日志
func (*OperationLogService) CreateSysUserLogWithContext ¶
func (s *OperationLogService) CreateSysUserLogWithContext(ctx context.Context, c *gin.Context, userID int64, username string, module, action, description string, startTime time.Time) error
CreateSysUserLogWithContext 使用上下文创建系统用户操作日志
func (*OperationLogService) CreateUserLog ¶
func (s *OperationLogService) CreateUserLog(c *gin.Context, userID int64, username string, module, action, description string, startTime time.Time) error
CreateUserLog 创建普通用户操作日志
func (*OperationLogService) CreateUserLogWithContext ¶
func (s *OperationLogService) CreateUserLogWithContext(ctx context.Context, c *gin.Context, userID int64, username string, module, action, description string, startTime time.Time) error
CreateUserLogWithContext 使用上下文创建普通用户操作日志
func (*OperationLogService) DeleteOperationLog ¶
func (s *OperationLogService) DeleteOperationLog(ctx context.Context, id uint) error
DeleteOperationLog 删除操作日志
func (*OperationLogService) GetOperationLogs ¶
func (s *OperationLogService) GetOperationLogs(ctx context.Context, query *v1.OperationLogQuery) (*PageResult, error)
GetOperationLogs 分页获取操作日志
type PageResult ¶
type PageResult struct {
Total int64 `json:"total"` // 总记录数
Page int `json:"page"` // 当前页码
PageSize int `json:"page_size"` // 每页大小
List []model.OperationLog `json:"list"` // 数据列表
}
PageResult 分页结果
type PermissionService ¶
type PermissionService struct {
// contains filtered or unexported fields
}
PermissionService 权限服务
func NewPermissionService ¶
func NewPermissionService(params ServiceParams, casbinService casbin.Service) *PermissionService
NewPermissionService 创建权限服务
func (*PermissionService) AssignPermissionToRole ¶
func (s *PermissionService) AssignPermissionToRole(ctx context.Context, roleID uint, permissionIDs []uint) error
AssignPermissionToRole 为角色分配权限
func (*PermissionService) AssignRolesToUser ¶
func (s *PermissionService) AssignRolesToUser(ctx context.Context, userID string, roleIDs []uint) error
AssignRolesToUser 为用户分配角色
func (*PermissionService) CheckPermission ¶
func (s *PermissionService) CheckPermission(ctx context.Context, userID string, obj string, act string) (bool, error)
CheckPermission 检查权限
func (*PermissionService) CreatePermission ¶
func (s *PermissionService) CreatePermission(ctx context.Context, permission *model.Permission) error
CreatePermission 创建权限
func (*PermissionService) DeletePermission ¶
func (s *PermissionService) DeletePermission(ctx context.Context, id uint) error
DeletePermission 删除权限
func (*PermissionService) GetPermission ¶
func (s *PermissionService) GetPermission(ctx context.Context, id uint64) (*model.Permission, error)
GetPermission 获取权限详情
func (*PermissionService) GetPermissionByID ¶
func (s *PermissionService) GetPermissionByID(ctx context.Context, id uint) (*model.Permission, error)
GetPermissionByID 获取权限详情
func (*PermissionService) GetPermissions ¶
func (s *PermissionService) GetPermissions(ctx context.Context) ([]model.Permission, error)
GetPermissions 获取权限列表
func (*PermissionService) GetPermissionsByRoleID ¶
func (s *PermissionService) GetPermissionsByRoleID(ctx context.Context, roleID uint) ([]model.Permission, error)
GetPermissionsByRoleID 获取角色的权限列表
func (*PermissionService) GetPermissionsByUserID ¶
func (s *PermissionService) GetPermissionsByUserID(ctx context.Context, userID uint) ([]model.Permission, error)
GetPermissionsByUserID 获取用户的权限列表
func (*PermissionService) GetUserMenus ¶
func (s *PermissionService) GetUserMenus(ctx context.Context, userID int64) ([]*model.MenuTree, error)
GetUserMenus 获取用户菜单
func (*PermissionService) GetUserRoles ¶
GetUserRoles 获取用户角色
func (*PermissionService) UpdatePermission ¶
func (s *PermissionService) UpdatePermission(ctx context.Context, permission *model.Permission) error
UpdatePermission 更新权限
func (*PermissionService) UpdatePermissionSettings ¶
func (s *PermissionService) UpdatePermissionSettings(ctx context.Context, enabled, defaultAllow bool) error
UpdatePermissionSettings 更新权限系统设置
type PermissionServiceInterface ¶
type PermissionServiceInterface interface {
// 权限相关方法
CreatePermission(ctx context.Context, permission *model.Permission) error
UpdatePermission(ctx context.Context, permission *model.Permission) error
DeletePermission(ctx context.Context, id uint) error
GetPermissionByID(ctx context.Context, id uint) (*model.Permission, error)
GetPermissions(ctx context.Context) ([]model.Permission, error)
CheckPermission(ctx context.Context, userID string, obj string, act string) (bool, error)
GetUserMenus(ctx context.Context, userID int64) ([]*model.MenuTree, error)
// 扩展方法
UpdatePermissionSettings(ctx context.Context, enabled bool, defaultAllow bool) error
GetPermission(ctx context.Context, id uint64) (*model.Permission, error)
GetPermissionsByUserID(ctx context.Context, userID uint) ([]model.Permission, error)
GetUserRoles(ctx context.Context, userID string) ([]model.Role, error)
AssignRolesToUser(ctx context.Context, userID string, roleIDs []uint) error
AssignPermissionToRole(ctx context.Context, roleID uint, permissionIDs []uint) error
GetPermissionsByRoleID(ctx context.Context, roleID uint) ([]model.Permission, error)
}
PermissionServiceInterface 权限服务接口
func ProvidePermissionService ¶
func ProvidePermissionService(params ServiceParams, casbinService casbin.Service) PermissionServiceInterface
ProvidePermissionService 根据用户模式提供权限服务
type RoleService ¶
type RoleService struct {
// contains filtered or unexported fields
}
RoleService 角色服务
func NewRoleService ¶
func NewRoleService(params ServiceParams, casbinService casbin.Service) *RoleService
NewRoleService 创建角色服务
func (*RoleService) AssignMenusToRole ¶
AssignMenusToRole 为角色分配菜单
func (*RoleService) AssignRolesToUser ¶
AssignRolesToUser 为用户分配角色
func (*RoleService) CreateRole ¶
CreateRole 创建角色
func (*RoleService) DeleteRole ¶
func (s *RoleService) DeleteRole(ctx context.Context, id uint) error
DeleteRole 删除角色
func (*RoleService) DeleteRolePermission ¶
func (s *RoleService) DeleteRolePermission(ctx context.Context, roleCode string, obj string, act string) error
删除角色的权限策略
func (*RoleService) GetRoleByID ¶
GetRoleByID 根据ID获取角色
func (*RoleService) GetRoleMenuIDs ¶
GetRoleMenuIDs 获取角色菜单ID列表
func (*RoleService) GetUserRoleIDs ¶
GetUserRoleIDs 获取用户角色ID列表
func (*RoleService) SetRolePermission ¶
func (s *RoleService) SetRolePermission(ctx context.Context, roleCode string, obj string, act string) error
为角色设置权限策略
func (*RoleService) UpdateRole ¶
UpdateRole 更新角色
type RoleServiceInterface ¶
type RoleServiceInterface interface {
// 角色相关方法
CreateRole(ctx context.Context, role *model.Role) error
UpdateRole(ctx context.Context, role *model.Role) error
DeleteRole(ctx context.Context, id uint) error
GetRoleByID(ctx context.Context, id uint) (*model.Role, error)
GetRoles(ctx context.Context) ([]model.Role, error)
AssignRolesToUser(ctx context.Context, userID int64, roleIDs []uint) error
GetUserRoleIDs(ctx context.Context, userID uint) ([]uint, error)
GetRoleMenuIDs(ctx context.Context, roleID uint) ([]uint, error)
AssignMenusToRole(ctx context.Context, roleID uint, menuIDs []uint) error
// 权限相关方法
SetRolePermission(ctx context.Context, roleCode, obj, act string) error
DeleteRolePermission(ctx context.Context, roleCode, obj, act string) error
}
RoleServiceInterface 角色服务接口
func ProvideRoleService ¶
func ProvideRoleService(params ServiceParams, casbinService casbin.Service) RoleServiceInterface
ProvideRoleService 根据用户模式提供角色服务
type SeparateAdminUserService ¶
type SeparateAdminUserService struct {
// contains filtered or unexported fields
}
SeparateAdminUserService 分离模式下的管理员用户服务
func NewSeparateAdminUserService ¶
func NewSeparateAdminUserService(params ServiceParams, casbinService casbin.Service, authService *AuthService) *SeparateAdminUserService
NewSeparateAdminUserService 创建分离模式下的管理员用户服务
func (*SeparateAdminUserService) GetUserInfo ¶
func (s *SeparateAdminUserService) GetUserInfo(ctx context.Context, id int64) (interface{}, error)
GetUserInfo 获取管理员用户信息
func (*SeparateAdminUserService) Login ¶
func (s *SeparateAdminUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
Login 管理员登录
func (*SeparateAdminUserService) RefreshToken ¶
func (s *SeparateAdminUserService) RefreshToken(ctx context.Context, refreshToken string) (*v1.LoginResponse, error)
RefreshToken 刷新令牌
func (*SeparateAdminUserService) VerifyPassword ¶
func (s *SeparateAdminUserService) VerifyPassword(password, hashedPassword string) bool
VerifyPassword 验证用户密码
type SeparateUserService ¶
type SeparateUserService struct {
// contains filtered or unexported fields
}
SeparateUserService 分离模式下的用户服务实现
func NewSeparateUserService ¶
func NewSeparateUserService(params ServiceParams, authService *AuthService) *SeparateUserService
NewSeparateUserService 创建分离模式下的用户服务
func (*SeparateUserService) ChangePassword ¶
func (s *SeparateUserService) ChangePassword(ctx context.Context, id int64, oldPassword, newPassword string) error
ChangePassword 修改密码
func (*SeparateUserService) GetUserByID ¶
GetUserByID 根据ID获取用户信息
func (*SeparateUserService) Login ¶
func (s *SeparateUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
Login 用户登录
func (*SeparateUserService) Register ¶
func (s *SeparateUserService) Register(ctx context.Context, req v1.UserRegisterRequest, registerIP string, isAdmin bool) (*model.User, error)
Register 用户注册
func (*SeparateUserService) UpdateUser ¶
UpdateUser 更新用户信息
func (*SeparateUserService) VerifyPassword ¶
func (s *SeparateUserService) VerifyPassword(password, hashedPassword string) bool
VerifyPassword 验证用户密码
type ServiceParams ¶
type ServiceParams struct {
fx.In
Config *configs.Config
LC fx.Lifecycle
Logger *logger.Logger `optional:"true"`
// 仓库
UserRepo *repository.UserRepo
AdminUserRepo *repository.AdminUserRepo
RoleRepo *repository.RoleRepo
MenuRepo *repository.MenuRepo
MenuButtonRepo *repository.MenuButtonRepo
PermissionRepo *repository.PermissionRepo
OperationLogRepo *repository.OperationLogRepo
FileRepo *repository.FileRepo
APIRepo *repository.APIRepo
AdminRepo *repository.AdminRepo
}
ServiceParams 服务参数
type SimpleAdminUserService ¶
type SimpleAdminUserService struct {
// contains filtered or unexported fields
}
SimpleAdminUserService 简单模式下的管理员用户服务
func NewSimpleAdminUserService ¶
func NewSimpleAdminUserService(params ServiceParams, authService *AuthService) *SimpleAdminUserService
NewSimpleAdminUserService 创建简单模式下的管理员用户服务
func (*SimpleAdminUserService) GetUserInfo ¶
func (s *SimpleAdminUserService) GetUserInfo(ctx context.Context, id int64) (interface{}, error)
GetUserInfo 获取管理员用户信息
func (*SimpleAdminUserService) Login ¶
func (s *SimpleAdminUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
Login 管理员登录
func (*SimpleAdminUserService) RefreshToken ¶
func (s *SimpleAdminUserService) RefreshToken(ctx context.Context, refreshToken string) (*v1.LoginResponse, error)
RefreshToken 刷新令牌
func (*SimpleAdminUserService) VerifyPassword ¶
func (s *SimpleAdminUserService) VerifyPassword(password, hashedPassword string) bool
VerifyPassword 验证用户密码
type SimpleUserService ¶
type SimpleUserService struct {
// contains filtered or unexported fields
}
SimpleUserService 简单模式下的用户服务实现
func NewSimpleUserService ¶
func NewSimpleUserService(params ServiceParams, authService *AuthService) *SimpleUserService
NewSimpleUserService 创建简单模式下的用户服务
func (*SimpleUserService) ChangePassword ¶
func (s *SimpleUserService) ChangePassword(ctx context.Context, id int64, oldPassword, newPassword string) error
ChangePassword 修改密码
func (*SimpleUserService) GetUserByID ¶
GetUserByID 根据ID获取用户信息
func (*SimpleUserService) Login ¶
func (s *SimpleUserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
Login 用户登录
func (*SimpleUserService) Register ¶
func (s *SimpleUserService) Register(ctx context.Context, req v1.UserRegisterRequest, registerIP string, isAdmin bool) (*model.User, error)
Register 用户注册
func (*SimpleUserService) UpdateUser ¶
UpdateUser 更新用户信息
func (*SimpleUserService) VerifyPassword ¶
func (s *SimpleUserService) VerifyPassword(password, hashedPassword string) bool
VerifyPassword 验证用户密码
type UserService ¶
type UserService struct {
// contains filtered or unexported fields
}
UserService 普通用户服务
func NewUserService ¶
func NewUserService(params ServiceParams, authService *AuthService) *UserService
NewUserService 创建普通用户服务
func (*UserService) ChangePassword ¶
func (s *UserService) ChangePassword(ctx context.Context, id int64, oldPassword, newPassword string) error
ChangePassword 修改密码
func (*UserService) GetUserByID ¶
GetUserByID 根据ID获取用户信息
func (*UserService) Login ¶
func (s *UserService) Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
Login 用户登录
func (*UserService) Register ¶
func (s *UserService) Register(ctx context.Context, req v1.UserRegisterRequest, registerIP string, isAdmin bool) (*model.User, error)
Register 用户注册
func (*UserService) RegisterAdmin ¶
func (s *UserService) RegisterAdmin(ctx context.Context, req v1.UserRegisterRequest, registerIP string) (*model.User, error)
RegisterAdmin 注册管理员用户
func (*UserService) UpdateUser ¶
UpdateUser 更新用户信息
func (*UserService) VerifyPassword ¶
func (s *UserService) VerifyPassword(password, hashedPassword string) bool
VerifyPassword 验证用户密码
type UserServiceInterface ¶
type UserServiceInterface interface {
// 用户相关方法
GetUserByID(ctx context.Context, id int64) (*model.User, error)
Register(ctx context.Context, req v1.UserRegisterRequest, registerIP string, isAdmin bool) (*model.User, error)
Login(ctx context.Context, username, password string, ip string) (*v1.LoginResponse, error)
UpdateUser(ctx context.Context, id uint, data map[string]any) error
ChangePassword(ctx context.Context, id int64, oldPassword, newPassword string) error
}
UserServiceInterface 用户服务接口 定义用户服务的通用方法,不同模式下的实现可能不同
func ProvideUserService ¶
func ProvideUserService(params ServiceParams, authService *AuthService) UserServiceInterface
ProvideUserService 根据用户模式提供用户服务
Source Files
¶
- admin_service.go
- admin_user_service.go
- api_service.go
- auth_service.go
- error_monitor.go
- factory.go
- file_service.go
- interfaces.go
- menu_api_service.go
- menu_service.go
- module.go
- operation_log_service.go
- permission_service.go
- role_service.go
- separate_admin_user_service.go
- separate_user_service.go
- simple_admin_user_service.go
- simple_user_service.go
- user_service.go