25 lines
780 B
Go
25 lines
780 B
Go
package model
|
|
|
|
type MembershipType int64
|
|
|
|
const (
|
|
MembershipType_UserGroup MembershipType = 1 // equals to SubjectTypeUserGroup
|
|
MembershipType_OrgNode MembershipType = 2 // equals to SubjectTypeOrgNode
|
|
)
|
|
|
|
type MembershipRelation struct {
|
|
ID int64 `gorm:"primaryKey;autoIncrement"`
|
|
Type MembershipType `gorm:"not null;index" json:"type"` // 1: UserGroup, 2: OrgNode
|
|
UserID int64 `gorm:"not null;index" json:"user_id"`
|
|
MembershipID int64 `gorm:"not null;index" json:"membership_id"` // user_group_id or org_node_id
|
|
|
|
// virtual field
|
|
User User `gorm:"foreignKey:UserID;references:ID"`
|
|
}
|
|
|
|
// query all user belong to membership with type and member_id
|
|
|
|
func (MembershipRelation) TableName() string {
|
|
return "membership"
|
|
}
|