mirror of
https://github.com/khairul169/vaulterm.git
synced 2026-09-15 17:03:30 +07:00
feat: team draft
This commit is contained in:
@@ -45,6 +45,7 @@ func Init() {
|
||||
|
||||
// Migrate the schema
|
||||
db.AutoMigrate(Models...)
|
||||
InitModels(db)
|
||||
runSeeders(db)
|
||||
}
|
||||
|
||||
|
||||
+14
-1
@@ -1,10 +1,23 @@
|
||||
package db
|
||||
|
||||
import "rul.sh/vaulterm/models"
|
||||
import (
|
||||
"log"
|
||||
|
||||
"gorm.io/gorm"
|
||||
"rul.sh/vaulterm/models"
|
||||
)
|
||||
|
||||
var Models = []interface{}{
|
||||
&models.User{},
|
||||
&models.UserSession{},
|
||||
&models.Keychain{},
|
||||
&models.Host{},
|
||||
&models.Team{},
|
||||
&models.TeamMembers{},
|
||||
}
|
||||
|
||||
func InitModels(db *gorm.DB) {
|
||||
if err := db.SetupJoinTable(&models.Team{}, "Members", &models.TeamMembers{}); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
+30
-2
@@ -28,7 +28,18 @@ func seedUsers(tx *gorm.DB) error {
|
||||
return err
|
||||
}
|
||||
|
||||
userList := []models.User{
|
||||
teams := []*models.Team{
|
||||
{
|
||||
Name: "My Team",
|
||||
Icon: "☘️",
|
||||
},
|
||||
}
|
||||
|
||||
if res := tx.Create(&teams); res.Error != nil {
|
||||
return res.Error
|
||||
}
|
||||
|
||||
userList := []*models.User{
|
||||
{
|
||||
Name: "Admin",
|
||||
Username: "admin",
|
||||
@@ -42,22 +53,39 @@ func seedUsers(tx *gorm.DB) error {
|
||||
Password: testPasswd,
|
||||
Email: "[email protected]",
|
||||
},
|
||||
{
|
||||
Name: "Mary Doe",
|
||||
Username: "user2",
|
||||
Password: testPasswd,
|
||||
Email: "[email protected]",
|
||||
},
|
||||
}
|
||||
|
||||
if res := tx.Create(&userList); res.Error != nil {
|
||||
return res.Error
|
||||
}
|
||||
|
||||
teamMembers := []models.TeamMembers{
|
||||
{TeamID: teams[0].ID, UserID: userList[0].ID, Role: "owner"},
|
||||
{TeamID: teams[0].ID, UserID: userList[1].ID, Role: "admin"},
|
||||
{TeamID: teams[0].ID, UserID: userList[2].ID, Role: "user"},
|
||||
}
|
||||
|
||||
if res := tx.Create(&teamMembers); res.Error != nil {
|
||||
return res.Error
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func runSeeders(db *gorm.DB) {
|
||||
db.Transaction(func(tx *gorm.DB) error {
|
||||
for _, seed := range seeders {
|
||||
if err := seed(db); err != nil {
|
||||
if err := seed(tx); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user