mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 10:25:52 +02:00
96 lines
2.1 KiB
Go
96 lines
2.1 KiB
Go
package certificate
|
|
|
|
import (
|
|
"github.com/0xJacky/Nginx-UI/api"
|
|
"github.com/0xJacky/Nginx-UI/internal/cosy"
|
|
"github.com/0xJacky/Nginx-UI/model"
|
|
"github.com/0xJacky/Nginx-UI/query"
|
|
"github.com/0xJacky/Nginx-UI/settings"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/spf13/cast"
|
|
"net/http"
|
|
)
|
|
|
|
func GetAcmeUser(c *gin.Context) {
|
|
u := query.AcmeUser
|
|
id := cast.ToInt(c.Param("id"))
|
|
user, err := u.FirstByID(id)
|
|
if err != nil {
|
|
api.ErrHandler(c, err)
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, user)
|
|
}
|
|
|
|
func CreateAcmeUser(c *gin.Context) {
|
|
cosy.Core[model.AcmeUser](c).SetValidRules(gin.H{
|
|
"name": "required",
|
|
"email": "required,email",
|
|
"ca_dir": "omitempty",
|
|
}).BeforeExecuteHook(func(ctx *cosy.Ctx[model.AcmeUser]) {
|
|
if ctx.Model.CADir == "" {
|
|
ctx.Model.CADir = settings.ServerSettings.CADir
|
|
}
|
|
err := ctx.Model.Register()
|
|
if err != nil {
|
|
ctx.AbortWithError(err)
|
|
return
|
|
}
|
|
}).Create()
|
|
}
|
|
|
|
func ModifyAcmeUser(c *gin.Context) {
|
|
cosy.Core[model.AcmeUser](c).SetValidRules(gin.H{
|
|
"name": "omitempty",
|
|
"email": "omitempty,email",
|
|
"ca_dir": "omitempty",
|
|
}).BeforeExecuteHook(func(ctx *cosy.Ctx[model.AcmeUser]) {
|
|
if ctx.Model.CADir == "" {
|
|
ctx.Model.CADir = settings.ServerSettings.CADir
|
|
}
|
|
|
|
if ctx.OriginModel.Email != ctx.Model.Email ||
|
|
ctx.OriginModel.CADir != ctx.Model.CADir {
|
|
err := ctx.Model.Register()
|
|
if err != nil {
|
|
ctx.AbortWithError(err)
|
|
return
|
|
}
|
|
}
|
|
}).Modify()
|
|
}
|
|
|
|
func GetAcmeUserList(c *gin.Context) {
|
|
cosy.Core[model.AcmeUser](c).
|
|
SetFussy("name", "email").
|
|
PagingList()
|
|
}
|
|
|
|
func DestroyAcmeUser(c *gin.Context) {
|
|
cosy.Core[model.AcmeUser](c).Destroy()
|
|
}
|
|
|
|
func RecoverAcmeUser(c *gin.Context) {
|
|
cosy.Core[model.AcmeUser](c).Recover()
|
|
}
|
|
|
|
func RegisterAcmeUser(c *gin.Context) {
|
|
id := cast.ToInt(c.Param("id"))
|
|
u := query.AcmeUser
|
|
user, err := u.FirstByID(id)
|
|
if err != nil {
|
|
api.ErrHandler(c, err)
|
|
return
|
|
}
|
|
err = user.Register()
|
|
if err != nil {
|
|
api.ErrHandler(c, err)
|
|
return
|
|
}
|
|
_, err = u.Where(u.ID.Eq(id)).Updates(user)
|
|
if err != nil {
|
|
api.ErrHandler(c, err)
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, user)
|
|
}
|