1
0

auth.go 836 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package settings
  2. import (
  3. "github.com/0xJacky/Nginx-UI/api"
  4. "github.com/0xJacky/Nginx-UI/query"
  5. "github.com/0xJacky/Nginx-UI/settings"
  6. "github.com/gin-gonic/gin"
  7. "net/http"
  8. "time"
  9. )
  10. func GetBanLoginIP(c *gin.Context) {
  11. b := query.BanIP
  12. // clear expired banned IPs
  13. _, _ = b.Where(b.ExpiredAt.Lte(time.Now().Unix())).Delete()
  14. banIps, err := b.Where(
  15. b.ExpiredAt.Gte(time.Now().Unix()),
  16. b.Attempts.Gte(settings.AuthSettings.MaxAttempts)).Find()
  17. if err != nil {
  18. api.ErrHandler(c, err)
  19. return
  20. }
  21. c.JSON(http.StatusOK, banIps)
  22. }
  23. func RemoveBannedIP(c *gin.Context) {
  24. var json struct {
  25. IP string `json:"ip"`
  26. }
  27. if !api.BindAndValid(c, &json) {
  28. return
  29. }
  30. b := query.BanIP
  31. _, err := b.Where(b.IP.Eq(json.IP)).Delete()
  32. if err != nil {
  33. api.ErrHandler(c, err)
  34. return
  35. }
  36. c.JSON(http.StatusNoContent, nil)
  37. }