Files
SNCTF/api/admin/user.go
2022-07-18 16:34:09 +08:00

100 lines
2.6 KiB
Go

package admin
import (
"fmt"
"github.com/gin-gonic/gin"
"main.go/api"
db "main.go/database"
. "main.go/type"
"strconv"
)
//GetAllUserInfo 获取所有用户
func GetAllUserInfo(c *gin.Context) {
api.Link()
DB := db.DBsnctf
var resquest []AllInfoResponse
rows, err := DB.Debug().Table("user").Select([]string{"id", "username", "affiliation", "country", "website", "password", "email", "banned", "hidden", "role", "team_id"}).Rows()
if err != nil {
c.JSON(400, gin.H{"code": 400, "msg": "Get info error!"})
return
}
for rows.Next() {
var info AllInfoResponse
err := rows.Scan(&info.Id, &info.Username, &info.Affiliation, &info.Country, &info.Website, &info.Password, &info.Email, &info.Banned, &info.Hidden, &info.Role, &info.TeamID)
if err != nil {
c.JSON(400, gin.H{"code": 400, "msg": "Get info error!"})
return
}
resquest = append(resquest, info)
}
c.JSON(200, gin.H{"code": 200, "data": resquest})
}
// DelUser 删除用户
func DelUser(c *gin.Context) {
id := c.Param("id")
uid, _ := strconv.Atoi(id)
api.Link()
DB := db.DBsnctf
err := DB.Debug().Table("user").Where("id = ?", uid).Delete(&User{}).Error
if err != nil {
c.JSON(400, gin.H{"code": 400, "msg": "Delete user error!"})
return
}
c.JSON(200, gin.H{"code": 200, "msg": "Delete user success!"})
}
// EditUser 更新用户信息
func EditUser(c *gin.Context) {
var user EditInfoRequest
id := c.Param("id")
uid, _ := strconv.Atoi(id)
api.Link()
DB := db.DBsnctf
err := c.ShouldBindJSON(&user)
if err != nil {
fmt.Println(err)
c.JSON(400, gin.H{"code": 400, "msg": "Update user error!"})
return
}
upuser := &EditInfoRequest{
Username: user.Username,
Password: user.Password,
Email: user.Email,
Affiliation: user.Affiliation,
Country: user.Country,
Website: user.Website,
Banned: user.Banned,
Hidden: user.Hidden,
Role: user.Role,
TeamID: user.TeamID,
}
err = DB.Table("user").Where("id = ?", uid).Updates(upuser).Error
if err != nil {
fmt.Println(err)
c.JSON(400, gin.H{"code": 400, "msg": "Update user error!"})
return
}
c.JSON(200, gin.H{"code": 200, "msg": "Update user success!"})
}
// AddUser 新增用户
func AddUser(c *gin.Context) {
var user User
api.Link()
DB := db.DBsnctf
err := c.ShouldBindJSON(&user)
if err != nil {
c.JSON(400, gin.H{"code": 400, "msg": "Add user error!"})
return
}
err = DB.Debug().Table("user").Create(&user).Error
if err != nil {
c.JSON(400, gin.H{"code": 400, "msg": "Add user error!"})
return
}
c.JSON(200, gin.H{"code": 200, "msg": "Add user success!"})
}