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.