package auth import ( "strings" "time" "gorm.io/gorm" ) //Group enum of user permission groups type Group struct { ID uint `gorm:"primaryKey"` // Name starting with '*' is reserved and starting with '_' is internal Name string `gorm:"unique;not null"` DisplayName string Description string Users []*User `gorm:"many2many:user_groups;"` //extra fields GRPF1 string CreatedAt time.Time UpdatedAt time.Time } var BeforeGroupSave func(*Group) error = func(g *Group) error { return nil } func (grp *Group) BeforeSave(tx *gorm.DB) (err error) { // set displayname if grp.DisplayName == "" { grp.DisplayName = strings.TrimPrefix(grp.Name, SYS_AUTH_PREFIX) } return BeforeGroupSave(grp) } var BeforeGroupUpdate func(*Group) error = func(g *Group) error { return nil } func (grp *Group) BeforeUpdate(tx *gorm.DB) (err error) { return BeforeGroupUpdate(grp) } var BeforeGroupDelete func(*Group) error = func(g *Group) error { return nil } func (grp *Group) BeforeDelete(tx *gorm.DB) (err error) { return BeforeGroupDelete(grp) }