From 4c1ece4b96620e25ec4c1b6aae01705f2a255db8 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Fri, 15 Nov 2019 16:32:43 +0800 Subject: [PATCH] Add: model/folder --- models/folder.go | 17 +++++++++++++++++ models/migration.go | 2 +- models/user.go | 13 +++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 models/folder.go diff --git a/models/folder.go b/models/folder.go new file mode 100644 index 0000000..f7f9481 --- /dev/null +++ b/models/folder.go @@ -0,0 +1,17 @@ +package model + +import "github.com/jinzhu/gorm" + +// Folder 目录 +type Folder struct { + // 表字段 + gorm.Model + Name string + ParentID uint + Position string `gorm:"size:65536"` + OwnerID uint + PositionAbsolute string `gorm:"size:65536"` + + // 关联模型 + OptionsSerialized PolicyOption `gorm:"-"` +} diff --git a/models/migration.go b/models/migration.go index 98658d7..2d1de4a 100644 --- a/models/migration.go +++ b/models/migration.go @@ -25,7 +25,7 @@ func migration() { util.Log().Info("开始进行数据库自动迁移...") // 自动迁移模式 - DB.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{}, &Setting{}, &Group{}, &Policy{}) + DB.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{}, &Setting{}, &Group{}, &Policy{}, &Folder{}) // 创建初始存储策略 addDefaultPolicy() diff --git a/models/user.go b/models/user.go index 054bf30..e4748bc 100644 --- a/models/user.go +++ b/models/user.go @@ -107,6 +107,19 @@ func (user *User) BeforeSave() (err error) { return err } +// AfterCreate 创建用户后的钩子 +func (user *User) AfterCreate(tx *gorm.DB) (err error) { + // 创建用户的默认根目录 + defaultFolder := &Folder{ + Name: "根目录", + Position: ".", + OwnerID: user.ID, + PositionAbsolute: "/", + } + tx.Create(defaultFolder) + return err +} + //SerializeOptions 将序列后的Option写入到数据库字段 func (user *User) SerializeOptions() (err error) { optionsValue, err := json.Marshal(&user.OptionsSerialized)