aeus-admin/defaults/default.go

59 lines
1.3 KiB
Go

package defaults
import (
"git.nobla.cn/golang/aeus-admin/models"
"gorm.io/gorm"
)
var (
defaultRoles = []*models.Role{}
defaultUsers = []*models.User{}
)
func init() {
adminRole := &models.Role{}
adminRole.Name = "admin"
adminRole.Label = "管理员"
adminRole.Description = "管理员角色"
defaultRoles = append(defaultRoles, adminRole)
adminUser := &models.User{}
adminUser.Uid = "admin"
adminUser.Username = "admin"
adminUser.Password = "admin"
adminUser.Role = "admin"
adminUser.Admin = true
guestUser := &models.User{}
guestUser.Uid = "guest"
guestUser.Username = "guest"
guestUser.Password = "guest"
guestUser.Role = "admin"
defaultUsers = append(defaultUsers, adminUser, guestUser)
}
func Init(db *gorm.DB) (err error) {
var (
n int64
)
if db.Model(&models.Role{}).Count(&n); n == 0 {
db.Create(defaultRoles)
permissions := make([]*models.Permission, 0)
db.Find(&permissions)
for _, row := range defaultRoles {
items := make([]*models.RolePermission, 0)
for _, perm := range permissions {
item := &models.RolePermission{}
item.Role = row.Name
item.PermissionId = perm.Id
items = append(items, item)
}
db.Save(items)
}
}
if db.Model(&models.User{}).Count(&n); n == 0 {
db.Create(defaultUsers)
}
return
}