103 lines
2.3 KiB
Go
103 lines
2.3 KiB
Go
package web
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
|
|
"github.com/gdy666/lucky/config"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func addSSL(c *gin.Context) {
|
|
var requestObj config.SSLCertficate
|
|
err := c.BindJSON(&requestObj)
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, gin.H{"ret": 1, "msg": "请求解析出错"})
|
|
return
|
|
}
|
|
|
|
err = requestObj.Init()
|
|
if err != nil {
|
|
log.Printf("addSSL requestObj.Init() error:%s", err.Error())
|
|
c.JSON(http.StatusOK, gin.H{"ret": 2, "msg": "证书和Key有误!"})
|
|
return
|
|
}
|
|
|
|
//fmt.Printf("CertsInfo:%v\n", *requestObj.CertsInfo)
|
|
err = config.SSLCertficateListAdd(&requestObj)
|
|
if err != nil {
|
|
log.Printf("config.SSLCertficateListAdd error:%s", err.Error())
|
|
c.JSON(http.StatusOK, gin.H{"ret": 2, "msg": fmt.Sprintf("添加SSL证书出错!:%s", err.Error())})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{"ret": 0})
|
|
|
|
}
|
|
|
|
type sslResInfo struct {
|
|
Key string `json:"Key"`
|
|
Remark string `json:"Remark"`
|
|
Enable bool `json:"Enable"`
|
|
AddTime string `json:"AddTime"`
|
|
CertsInfo *[]config.CertInfo `json:"CertsInfo"`
|
|
}
|
|
|
|
func getSSLCertficateList(c *gin.Context) {
|
|
rawList := config.GetSSLCertficateList()
|
|
var res []sslResInfo
|
|
for i := range rawList {
|
|
info := sslResInfo{
|
|
Key: rawList[i].Key,
|
|
Remark: rawList[i].Remark,
|
|
Enable: rawList[i].Enable,
|
|
AddTime: rawList[i].AddTime,
|
|
CertsInfo: rawList[i].CertsInfo,
|
|
}
|
|
|
|
res = append(res, info)
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{"ret": 0, "list": res})
|
|
}
|
|
|
|
func alterSSLCertficate(c *gin.Context) {
|
|
key := c.Query("key")
|
|
field := c.Query("field")
|
|
value := c.Query("value")
|
|
var err error
|
|
switch field {
|
|
case "enable":
|
|
{
|
|
enable := false
|
|
|
|
if value == "true" {
|
|
enable = true
|
|
}
|
|
err = config.SSLCertficateEnable(key, enable)
|
|
}
|
|
case "remark":
|
|
{
|
|
err = config.SSLCertficateAlterRemark(key, value)
|
|
}
|
|
default:
|
|
err = fmt.Errorf("不支持修改的字段:%s", field)
|
|
}
|
|
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, gin.H{"ret": 1, "msg": err.Error()})
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{"ret": 0})
|
|
}
|
|
|
|
func deleteSSLCertficate(c *gin.Context) {
|
|
key := c.Query("key")
|
|
err := config.SSLCertficateListDelete(key)
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, gin.H{"ret": 1, "msg": err.Error()})
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{"ret": 0})
|
|
}
|