valid.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package web
  2. import (
  3. "context"
  4. "fmt"
  5. v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
  6. "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
  7. )
  8. // ValidateAddRequest 验证添加请求
  9. func (s *AidedWebService) ValidateAddRequest(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse) error {
  10. if err := s.wafformatter.ValidateWafDomainCount(ctx, v1.GlobalRequire{
  11. HostId: req.HostId,
  12. Domain: req.WebForwardingData.Domain,
  13. Comment: req.WebForwardingData.Comment,
  14. Uid: req.Uid,
  15. }); err != nil {
  16. return fmt.Errorf("域名数量验证失败: %w", err)
  17. }
  18. if err := s.wafformatter.ValidateWafPortCount(ctx, require.HostId); err != nil {
  19. return fmt.Errorf("端口数量验证失败: %w", err)
  20. }
  21. protocol := s.GetProtocolType(req.WebForwardingData.IsHttps)
  22. if err := s.wafformatter.VerifyPort(ctx, protocol, int64(req.WebForwardingData.Id), req.WebForwardingData.Port, int64(require.HostId), req.WebForwardingData.Domain); err != nil {
  23. return fmt.Errorf("端口 %d 验证失败: %w", req.WebForwardingData.Port, err)
  24. }
  25. return nil
  26. }
  27. // ValidateEditRequest 验证编辑请求
  28. func (s *AidedWebService) ValidateEditRequest(ctx context.Context, req *v1.WebForwardingRequest) error {
  29. if err := s.wafformatter.ValidateWafDomainCount(ctx, v1.GlobalRequire{
  30. HostId: req.HostId,
  31. Domain: req.WebForwardingData.Domain,
  32. Comment: req.WebForwardingData.Comment,
  33. Uid: req.Uid,
  34. }); err != nil {
  35. return fmt.Errorf("域名数量验证失败: %w", err)
  36. }
  37. protocol := s.GetProtocolType(req.WebForwardingData.IsHttps)
  38. if err := s.wafformatter.VerifyPort(ctx, protocol, int64(req.WebForwardingData.Id), req.WebForwardingData.Port, int64(req.HostId), req.WebForwardingData.Domain); err != nil {
  39. return fmt.Errorf("端口 %d 验证失败: %w", req.WebForwardingData.Port, err)
  40. }
  41. return nil
  42. }
  43. // ValidateDeletePermission 验证删除权限
  44. func (s *AidedWebService) ValidateDeletePermission(oldHostId int, hostId int) error {
  45. if oldHostId != hostId {
  46. return fmt.Errorf("用户权限不足")
  47. }
  48. return nil
  49. }