59 lines
1.3 KiB
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
|
|
}
|