Documentation
¶
Index ¶
- Variables
- func RegisterEntity(tx *gorm.DB, entities ...Entity) error
- type Action
- type AuthorizeService
- func (auth *AuthorizeService) ListDomain()
- func (auth *AuthorizeService) ListDomainRole()
- func (auth *AuthorizeService) ListEntity() ([]*EntityInfo, error)
- func (auth *AuthorizeService) RoleCreate(identity Identity, role *RoleIdentity) error
- func (auth *AuthorizeService) RoleDelete(identity Identity, role *RoleIdentity) error
- func (auth *AuthorizeService) RoleList(identity Identity, query *RoleListQuery) (RoleListResult, error)
- func (auth *AuthorizeService) RoleUpdatePermission(identity Identity, role *RoleIdentity, inheritRole *RoleIdentity, ...) error
- func (auth *AuthorizeService) UserAddAdminDomain(updater Identity, user Identity, domainID uint) error
- func (auth *AuthorizeService) UserAddRole()
- func (auth *AuthorizeService) UserDeleteRole()
- func (auth *AuthorizeService) UserListRole()
- func (auth *AuthorizeService) UserRemoveAdminDomain(updater Identity, user Identity, roleID uint) error
- type Entity
- type EntityInfo
- type EntityPermission
- type EntityPermissionList
- type EntityUpdateBy
- type GoogleClaim
- type Identity
- type PermissionError
- type PermissionPrepload
- type Policy
- type RawQuery
- type RoleIdentity
- type RoleListQuery
- type RoleListResult
- type SecQuery
- func (q *SecQuery) CheckPermission() error
- func (q *SecQuery) Delete(value Entity) *gorm.DB
- func (q *SecQuery) Find(value Entity) *gorm.DB
- func (q *SecQuery) Model(value Entity) *SecQuery
- func (q *SecQuery) Preload(query RawQuery, args ...interface{}) *SecQuery
- func (q *SecQuery) Save(value Entity) *gorm.DB
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrPermission = errors.New("permission error")
Functions ¶
Types ¶
type AuthorizeService ¶
type AuthorizeService struct {
// contains filtered or unexported fields
}
func NewAuthorizeService ¶
func NewAuthorizeService( db *gorm.DB, ) *AuthorizeService
func (*AuthorizeService) ListDomain ¶
func (auth *AuthorizeService) ListDomain()
func (*AuthorizeService) ListDomainRole ¶
func (auth *AuthorizeService) ListDomainRole()
func (*AuthorizeService) ListEntity ¶
func (auth *AuthorizeService) ListEntity() ([]*EntityInfo, error)
func (*AuthorizeService) RoleCreate ¶
func (auth *AuthorizeService) RoleCreate(identity Identity, role *RoleIdentity) error
func (*AuthorizeService) RoleDelete ¶
func (auth *AuthorizeService) RoleDelete(identity Identity, role *RoleIdentity) error
func (*AuthorizeService) RoleList ¶
func (auth *AuthorizeService) RoleList(identity Identity, query *RoleListQuery) (RoleListResult, error)
func (*AuthorizeService) RoleUpdatePermission ¶
func (auth *AuthorizeService) RoleUpdatePermission(identity Identity, role *RoleIdentity, inheritRole *RoleIdentity, perms []*EntityPermission) error
func (*AuthorizeService) UserAddAdminDomain ¶
func (auth *AuthorizeService) UserAddAdminDomain(updater Identity, user Identity, domainID uint) error
func (*AuthorizeService) UserAddRole ¶
func (auth *AuthorizeService) UserAddRole()
func (*AuthorizeService) UserDeleteRole ¶
func (auth *AuthorizeService) UserDeleteRole()
func (*AuthorizeService) UserListRole ¶
func (auth *AuthorizeService) UserListRole()
func (*AuthorizeService) UserRemoveAdminDomain ¶
func (auth *AuthorizeService) UserRemoveAdminDomain(updater Identity, user Identity, roleID uint) error
type Entity ¶
type Entity interface {
Permission(identity Identity, action Action) *EntityPermission
GetDomainID() uint
GetEntityID() string
}
type EntityInfo ¶
type EntityPermission ¶
type EntityPermission struct {
IdentityID uint `gorm:"primaryKey" json:"identity_id"`
DomainID uint `gorm:"primaryKey" json:"domain_id"`
EntityID string `gorm:"primaryKey" json:"entity_id"`
Action Action `gorm:"primaryKey" json:"action"`
Policy Policy `json:"policy"`
}
func (*EntityPermission) GetDomainID ¶
func (perm *EntityPermission) GetDomainID() uint
GetDomainID implements Entity.
func (*EntityPermission) GetEntityID ¶
func (*EntityPermission) GetEntityID() string
GetEntityID implements Entity.
func (*EntityPermission) Permission ¶
func (perm *EntityPermission) Permission(identity Identity, action Action) *EntityPermission
Permission implements Entity.
type EntityPermissionList ¶
type EntityPermissionList []*EntityPermission
func (*EntityPermissionList) GetDomainID ¶
func (*EntityPermissionList) GetDomainID() uint
GetDomainID implements Entity.
func (*EntityPermissionList) GetEntityID ¶
func (*EntityPermissionList) GetEntityID() string
GetEntityID implements Entity.
func (*EntityPermissionList) Permission ¶
func (list *EntityPermissionList) Permission(identity Identity, action Action) *EntityPermission
Permission implements Entity.
type EntityUpdateBy ¶
type EntityUpdateBy interface {
SetUpdateByID(idnya uint)
}
type GoogleClaim ¶
type GoogleClaim struct {
Aud string `json:"aud"`
Azp string `json:"azp"`
Email string `json:"email"`
EmailVerified bool `json:"email_verified"`
Exp int `json:"exp"`
FamilyName string `json:"family_name"`
GivenName string `json:"given_name"`
Iat int `json:"iat"`
Iss string `json:"iss"`
Jti string `json:"jti"`
Locale string `json:"locale"`
Name string `json:"name"`
Nbf int `json:"nbf"`
Picture string `json:"picture"`
Sub string `json:"sub"`
}
type PermissionError ¶
type PermissionError struct {
NeedPermissions []*EntityPermission `json:"need_permission"`
ActualPermission []*EntityPermission `json:"actual_permission"`
// contains filtered or unexported fields
}
func (*PermissionError) Error ¶
func (permerr *PermissionError) Error() string
Error implements error.
func (*PermissionError) Unwrap ¶
func (err *PermissionError) Unwrap() error
type PermissionPrepload ¶
type PermissionPrepload struct{}
func (*PermissionPrepload) GetDomainID ¶
func (*PermissionPrepload) GetDomainID() uint
GetDomainID implements RawQuery.
func (*PermissionPrepload) GetEntityID ¶
func (*PermissionPrepload) GetEntityID() string
GetEntityID implements RawQuery.
func (*PermissionPrepload) Permission ¶
func (pre *PermissionPrepload) Permission(identity Identity, action Action) *EntityPermission
Permission implements RawQuery.
type RoleIdentity ¶
type RoleIdentity struct {
ID uint `gorm:"primarykey" json:"id"`
Key string `json:"key" gorm:"index:domain_key,unique"`
DomainID uint `json:"domain_id" gorm:"index:domain_key,unique"`
Permissions []*EntityPermission `json:"permission" gorm:"foreignKey:IdentityID"`
CreatedAt time.Time `json:"create_at"`
UpdatedAt time.Time `json:"update_at"`
}
func (*RoleIdentity) GetDomainID ¶
func (role *RoleIdentity) GetDomainID() uint
GetDomainID implements Entity.
func (*RoleIdentity) GetEntityID ¶
func (r *RoleIdentity) GetEntityID() string
GetEntityID implements Entity.
func (*RoleIdentity) IdentityID ¶
func (r *RoleIdentity) IdentityID() uint
IdentityID implements Identity.
func (RoleIdentity) IsSuperUser ¶
func (RoleIdentity) IsSuperUser() bool
IsSuperUser implements Identity.
func (*RoleIdentity) Permission ¶
func (role *RoleIdentity) Permission(identity Identity, action Action) *EntityPermission
Permission implements Entity.
type RoleListQuery ¶
type RoleListQuery struct {
DomainID uint `json:"domain_id" form:"domain_id" schema:"domain_id"`
}
type RoleListResult ¶
type RoleListResult []*RoleIdentity
func (*RoleListResult) GetDomainID ¶
func (*RoleListResult) GetDomainID() uint
GetDomainID implements Entity.
func (*RoleListResult) GetEntityID ¶
func (*RoleListResult) GetEntityID() string
GetEntityID implements Entity.
func (*RoleListResult) Permission ¶
func (list *RoleListResult) Permission(identity Identity, action Action) *EntityPermission
Permission implements Entity.
type SecQuery ¶
type SecQuery struct {
SecTx *gorm.DB
Tx *gorm.DB
Permission []*EntityPermission
PermHandler func(perm *EntityPermission) *EntityPermission
// contains filtered or unexported fields
}
func (*SecQuery) CheckPermission ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.