119 lines
2.7 KiB
Go
119 lines
2.7 KiB
Go
package routers
|
|
|
|
import (
|
|
"fmt"
|
|
"ops/models"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/mitchellh/mapstructure"
|
|
)
|
|
|
|
func ApiInit() {
|
|
//用户模块初始化init
|
|
fmt.Println("users init")
|
|
|
|
//创建admin用户
|
|
var user models.TabUser_
|
|
user.Name = "admin"
|
|
|
|
if models.DB.Where(&user).First(&user).Error == nil {
|
|
|
|
} else {
|
|
fmt.Println("用户不存在")
|
|
user.Pass = models.HashUserPass("adminpassword")
|
|
models.DB.Create(&user) // 传入指针
|
|
}
|
|
|
|
//创建admin group
|
|
var usergroup models.TabUserGroups_
|
|
usergroup.Name = "admins"
|
|
if models.DB.Where(&usergroup).First(&usergroup).Error == nil {
|
|
|
|
} else {
|
|
fmt.Println("用户组不存在")
|
|
models.DB.Create(&usergroup) // 传入指针
|
|
}
|
|
|
|
//创建用户与用户组绑定
|
|
var usergroupbind models.TabUserGroupBinds_
|
|
usergroupbind.UserID = user.ID
|
|
usergroupbind.GroupID = usergroup.ID
|
|
|
|
if models.DB.Where(&usergroupbind).First(&usergroupbind).Error == nil {
|
|
|
|
} else {
|
|
models.DB.Create(&usergroupbind) // 传入指针
|
|
}
|
|
|
|
}
|
|
|
|
type From_user_add struct {
|
|
Useremail string `json:"useremail"`
|
|
Username string `json:"username"`
|
|
Userpass string `json:"userpass"`
|
|
}
|
|
|
|
func ApiUser(r *gin.RouterGroup) {
|
|
|
|
r.GET("/test", func(ctx *gin.Context) {
|
|
ReturnJson(ctx, "apiOK", nil)
|
|
})
|
|
r.POST("/test", func(ctx *gin.Context) {
|
|
ReturnJson(ctx, "apiOK", nil)
|
|
})
|
|
r.POST("/register", func(ctx *gin.Context) {
|
|
//转换传进来的数据
|
|
var jsonData From_user_add
|
|
|
|
data, _ := SeparateData(ctx)
|
|
|
|
if data != nil {
|
|
if err := mapstructure.Decode(data, &jsonData); err == nil {
|
|
//转换字段
|
|
newUser := models.TabUser_{
|
|
Name: jsonData.Username,
|
|
Email: jsonData.Useremail,
|
|
Pass: jsonData.Userpass, // 实际应替换为哈希值
|
|
Date: time.Now(),
|
|
// Date 字段无需赋值,数据库会自动填充默认值
|
|
}
|
|
if newUser.Name != "" && newUser.Pass != "" && newUser.Email != "" {
|
|
//对用户的密码进行哈希替换
|
|
newUser.Pass = models.HashUserPass(newUser.Pass)
|
|
//用户名是唯一的,先读取是否有这个用户名
|
|
var user models.TabUser_
|
|
user.Name = newUser.Name
|
|
|
|
if models.DB.Where(&user).First(&user).Error == nil {
|
|
//fmt.Println("找到用户:", user.ID)
|
|
ReturnJson(ctx, "userNameDup", nil)
|
|
} else {
|
|
//fmt.Println("用户不存在")
|
|
models.DB.Create(&newUser) // 传入指针
|
|
|
|
// //创建info
|
|
// var user_info models.TabUserInfo_
|
|
// user_info.AvatarPath = models.ConfigsUser.AvatarPath
|
|
// user_info.UserID = newUser.ID
|
|
// models.DB.Create(&user_info) // 传入指针
|
|
|
|
ReturnJson(ctx, "apiOK", nil)
|
|
}
|
|
|
|
} else {
|
|
ReturnJson(ctx, "jsonErr", nil)
|
|
}
|
|
|
|
} else {
|
|
ReturnJson(ctx, "jsonErr", nil)
|
|
|
|
}
|
|
} else {
|
|
ReturnJson(ctx, "postErr", nil)
|
|
|
|
}
|
|
|
|
})
|
|
}
|