rbacdb

package
v1.0.44 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2023 License: MIT Imports: 6 Imported by: 15

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertTimeFromGorm

func ConvertTimeFromGorm(t gorm.DeletedAt) lang.Time

ConvertTimeFromGorm ...

func ConvertTimeToGorm

func ConvertTimeToGorm(t lang.Time) gorm.DeletedAt

ConvertTimeToGorm ...

func CopyBaseFieldsFromDtoToEntity

func CopyBaseFieldsFromDtoToEntity(src *rbac.BaseDTO, dst *BaseEntity)

CopyBaseFieldsFromDtoToEntity ...

func CopyBaseFieldsFromEntityToDTO

func CopyBaseFieldsFromEntityToDTO(src *BaseEntity, dst *rbac.BaseDTO)

CopyBaseFieldsFromEntityToDTO ...

Types

type BaseEntity

type BaseEntity struct {
	UUID lang.UUID `gorm:"unique"`

	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt gorm.DeletedAt `gorm:"index"`

	Owner   rbac.UserID
	Creator rbac.UserID
	Updater rbac.UserID
}

BaseEntity 是基本的数据库实体

type EmailAddressConvertor

type EmailAddressConvertor interface {
	ConvertE2D(c context.Context, entity *EmailAddressEntity) (*rbac.EmailAddressDTO, error)
	ConvertD2E(c context.Context, dto *rbac.EmailAddressDTO) (*EmailAddressEntity, error)

	ConvertListE2D(c context.Context, entity []*EmailAddressEntity) ([]*rbac.EmailAddressDTO, error)
}

EmailAddressConvertor ...

type EmailAddressDAO

type EmailAddressDAO interface {
	Insert(db *gorm.DB, o *EmailAddressEntity) (*EmailAddressEntity, error)
	Update(db *gorm.DB, id rbac.EmailAddressID, updater func(*EmailAddressEntity)) (*EmailAddressEntity, error)
	Delete(db *gorm.DB, id rbac.EmailAddressID) error

	Find(db *gorm.DB, id rbac.EmailAddressID) (*EmailAddressEntity, error)
	List(db *gorm.DB, q *rbac.EmailAddressQuery) ([]*EmailAddressEntity, error)

	FindByAddress(db *gorm.DB, address rbac.EmailAddress) (*EmailAddressEntity, error)
}

EmailAddressDAO ...

type EmailAddressEntity

type EmailAddressEntity struct {
	ID rbac.EmailAddressID `gorm:"primaryKey"`

	BaseEntity

	Address  rbac.EmailAddress `gorm:"unique"`
	Verified bool
}

EmailAddressEntity ...

func (EmailAddressEntity) TableName

func (EmailAddressEntity) TableName() string

TableName ...

type Finder added in v0.0.14

type Finder interface {
	Init(db *gorm.DB) Finder
	AsList(list any) Finder
	AsEntity(entity any) Finder
	All(all bool) Finder
	WithPagination(page *rbac.Pagination) Finder
	WithConditions(cond *rbac.Conditions) Finder
	Find() error
}

Finder 提供一套通用的查询工具

func NewFinder added in v0.0.14

func NewFinder() Finder

NewFinder 新建一个查询工具

type LocalAgent

type LocalAgent interface {
	libgorm.Agent
}

LocalAgent 是 rbac.db 的本地代理

type LocalAgentImpl

type LocalAgentImpl struct {
	DataSourceMan   libgorm.DataSourceManager //starter:inject("#")
	DataSourceAlias string                    //starter:inject("${datagroup.rbac.datasource}")
	// contains filtered or unexported fields
}

LocalAgentImpl ...

func (*LocalAgentImpl) DB

func (inst *LocalAgentImpl) DB(db *gorm.DB) *gorm.DB

DB ...

type PermissionConvertor

type PermissionConvertor interface {
	ConvertE2D(c context.Context, entity *PermissionEntity) (*rbac.PermissionDTO, error)
	ConvertD2E(c context.Context, dto *rbac.PermissionDTO) (*PermissionEntity, error)

	ConvertListE2D(c context.Context, entity []*PermissionEntity) ([]*rbac.PermissionDTO, error)
}

PermissionConvertor 负责 dto <==> entity 的转换

type PermissionDAO

type PermissionDAO interface {
	Insert(db *gorm.DB, o *PermissionEntity) (*PermissionEntity, error)
	Update(db *gorm.DB, id rbac.PermissionID, updater func(*PermissionEntity)) (*PermissionEntity, error)
	Delete(db *gorm.DB, id rbac.PermissionID) error

	Find(db *gorm.DB, id rbac.PermissionID) (*PermissionEntity, error)
	List(db *gorm.DB, q *rbac.PermissionQuery) ([]*PermissionEntity, error)
	ListAll(db *gorm.DB) ([]*PermissionEntity, error)
}

PermissionDAO 是数据库访问对象

type PermissionEntity

type PermissionEntity struct {
	ID rbac.PermissionID `gorm:"primaryKey"`

	BaseEntity

	Method      string
	Path        string
	Resource    string            `gorm:"unique"` // like 'method + ":" + path'
	AcceptRoles rbac.RoleNameList `gorm:"column:roles"`
	Enabled     bool              // 启用该项

}

PermissionEntity 表示 Permission 的数据库实体

func (PermissionEntity) TableName

func (PermissionEntity) TableName() string

TableName ...

type PhoneNumberConvertor

type PhoneNumberConvertor interface {
	ConvertE2D(c context.Context, entity *PhoneNumberEntity) (*rbac.PhoneNumberDTO, error)
	ConvertD2E(c context.Context, dto *rbac.PhoneNumberDTO) (*PhoneNumberEntity, error)

	ConvertListE2D(c context.Context, entity []*PhoneNumberEntity) ([]*rbac.PhoneNumberDTO, error)
}

PhoneNumberConvertor ...

type PhoneNumberDAO

type PhoneNumberDAO interface {
	Insert(db *gorm.DB, o *PhoneNumberEntity) (*PhoneNumberEntity, error)
	Update(db *gorm.DB, id rbac.PhoneNumberID, updater func(*PhoneNumberEntity)) (*PhoneNumberEntity, error)
	Delete(db *gorm.DB, id rbac.PhoneNumberID) error

	Find(db *gorm.DB, id rbac.PhoneNumberID) (*PhoneNumberEntity, error)
	FindByNumber(db *gorm.DB, num rbac.FullPhoneNumber) (*PhoneNumberEntity, error)
	List(db *gorm.DB, q *rbac.PhoneNumberQuery) ([]*PhoneNumberEntity, error)
}

PhoneNumberDAO ...

type PhoneNumberEntity

type PhoneNumberEntity struct {
	ID rbac.PhoneNumberID `gorm:"primaryKey"`

	BaseEntity

	FullNumber rbac.PurePhoneNumber `gorm:"unique"`

	Region       rbac.RegionPhoneCode
	SimpleNumber rbac.SimplePhoneNumber
	Verified     bool
}

PhoneNumberEntity ...

func (PhoneNumberEntity) TableName

func (PhoneNumberEntity) TableName() string

TableName ...

type RegionConvertor added in v0.0.7

type RegionConvertor interface {
	ConvertE2D(c context.Context, entity *RegionEntity) (*rbac.RegionDTO, error)
	ConvertD2E(c context.Context, dto *rbac.RegionDTO) (*RegionEntity, error)

	ConvertListE2D(c context.Context, entity []*RegionEntity) ([]*rbac.RegionDTO, error)
}

RegionConvertor 负责 dto <==> entity 的转换

type RegionDAO added in v0.0.7

type RegionDAO interface {
	Insert(db *gorm.DB, o *RegionEntity) (*RegionEntity, error)
	Update(db *gorm.DB, id rbac.RegionID, updater func(*RegionEntity)) (*RegionEntity, error)
	Delete(db *gorm.DB, id rbac.RegionID) error

	Find(db *gorm.DB, id rbac.RegionID) (*RegionEntity, error)
	List(db *gorm.DB, q *rbac.RegionQuery) ([]*RegionEntity, error)
	ListAll(db *gorm.DB) ([]*RegionEntity, error)
}

RegionDAO 是数据库访问对象

type RegionEntity added in v0.0.7

type RegionEntity struct {
	ID rbac.RegionID

	BaseEntity

	DisplayName string
	SimpleName  string
	FullName    string
	FlagURL     string
	Code2       rbac.RegionCode2     `gorm:"unique"`
	Code3       rbac.RegionCode3     `gorm:"unique"`
	PhoneCode   rbac.RegionPhoneCode `gorm:"unique"`
}

RegionEntity 表示区域的实体

func (RegionEntity) TableName added in v0.0.7

func (RegionEntity) TableName() string

TableName ...

type RoleConvertor

type RoleConvertor interface {
	ConvertE2D(c context.Context, entity *RoleEntity) (*rbac.RoleDTO, error)
	ConvertD2E(c context.Context, dto *rbac.RoleDTO) (*RoleEntity, error)

	ConvertListE2D(c context.Context, entity []*RoleEntity) ([]*rbac.RoleDTO, error)
}

RoleConvertor 负责 dto <==> entity 的转换

type RoleDAO

type RoleDAO interface {
	Insert(db *gorm.DB, o *RoleEntity) (*RoleEntity, error)
	Update(db *gorm.DB, id rbac.RoleID, updater func(*RoleEntity)) (*RoleEntity, error)
	Delete(db *gorm.DB, id rbac.RoleID) error

	Find(db *gorm.DB, id rbac.RoleID) (*RoleEntity, error)
	List(db *gorm.DB, q *rbac.RoleQuery) ([]*RoleEntity, error)
	ListAll(db *gorm.DB) ([]*RoleEntity, error)
}

RoleDAO 是数据库访问对象

type RoleEntity

type RoleEntity struct {
	ID rbac.RoleID `gorm:"primaryKey"`

	BaseEntity

	Name        rbac.RoleName `gorm:"unique"`
	Description string
}

RoleEntity 表示 Role 的数据库实体

func (RoleEntity) TableName

func (RoleEntity) TableName() string

TableName ...

type ThisGroupRegistry

type ThisGroupRegistry struct {
	Enabled bool   //starter:inject("${datagroup.rbac.enabled}")
	Prefix  string //starter:inject("${datagroup.rbac.table-name-prefix}")
	Source  string //starter:inject("${datagroup.rbac.datasource}")
	// contains filtered or unexported fields
}

ThisGroupRegistry ... 注册这一组(rbac.db)数据表

func (*ThisGroupRegistry) Groups

func (inst *ThisGroupRegistry) Groups() []*libgorm.GroupRegistration

Groups ...

type UserConvertor

type UserConvertor interface {
	ConvertE2D(c context.Context, entity *UserEntity) (*rbac.UserDTO, error)
	ConvertD2E(c context.Context, dto *rbac.UserDTO) (*UserEntity, error)

	ConvertListE2D(c context.Context, entity []*UserEntity) ([]*rbac.UserDTO, error)
}

UserConvertor 负责 dto <==> entity 的转换

type UserDAO

type UserDAO interface {
	Insert(db *gorm.DB, o *UserEntity) (*UserEntity, error)
	Update(db *gorm.DB, id rbac.UserID, updater func(o *UserEntity)) (*UserEntity, error)
	Delete(db *gorm.DB, id rbac.UserID) error

	FindByAny(db *gorm.DB, text string) (*UserEntity, error)
	FindByName(db *gorm.DB, name rbac.UserName) (*UserEntity, error)
	FindByPhone(db *gorm.DB, phone rbac.FullPhoneNumber) (*UserEntity, error)
	FindByEmail(db *gorm.DB, email rbac.EmailAddress) (*UserEntity, error)

	Find(db *gorm.DB, id rbac.UserID) (*UserEntity, error)
	List(db *gorm.DB, q *rbac.UserQuery) ([]*UserEntity, error)
}

UserDAO 是数据库访问对象

type UserEntity

type UserEntity struct {
	ID rbac.UserID `gorm:"primaryKey"`

	BaseEntity

	Name rbac.UserName `gorm:"unique"` // 用户名

	Nickname string              // 昵称
	Avatar   string              // 头像 (HTTP-URL)
	Phone    rbac.PhoneNumberID  // 主要的手机号
	Email    rbac.EmailAddressID // 主要的 e-mail 地址
	Roles    rbac.RoleNameList   // 用户的角色
	Enabled  bool                // 启用该项

	Password lang.Hex // 用户当前的密码
	Salt     lang.Hex // 跟密码相关的盐
}

UserEntity 表示 User 的数据库实体

func (UserEntity) TableName

func (UserEntity) TableName() string

TableName ...

Jump to

Keyboard shortcuts

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