nginx-ui/api/settings/auth.go
2024-11-16 10:58:02 +08:00

45 lines
833 B
Go

package settings
import (
"github.com/0xJacky/Nginx-UI/query"
"github.com/0xJacky/Nginx-UI/settings"
"github.com/gin-gonic/gin"
"github.com/uozi-tech/cosy"
"net/http"
"time"
)
func GetBanLoginIP(c *gin.Context) {
b := query.BanIP
// clear expired banned IPs
_, _ = b.Where(b.ExpiredAt.Lte(time.Now().Unix())).Delete()
banIps, err := b.Where(
b.ExpiredAt.Gte(time.Now().Unix()),
b.Attempts.Gte(settings.AuthSettings.MaxAttempts)).Find()
if err != nil {
cosy.ErrHandler(c, err)
return
}
c.JSON(http.StatusOK, banIps)
}
func RemoveBannedIP(c *gin.Context) {
var json struct {
IP string `json:"ip"`
}
if !cosy.BindAndValid(c, &json) {
return
}
b := query.BanIP
_, err := b.Where(b.IP.Eq(json.IP)).Delete()
if err != nil {
cosy.ErrHandler(c, err)
return
}
c.JSON(http.StatusNoContent, nil)
}