add xss validation

This commit is contained in:
$(pass /github/name)
2024-09-20 08:26:07 +02:00
parent 1e68e7d390
commit 851e62dbac

View File

@@ -1,7 +1,6 @@
package services package services
import ( import (
"net/http"
"slices" "slices"
"time" "time"
@@ -9,6 +8,7 @@ import (
"GoMembership/internal/models" "GoMembership/internal/models"
"GoMembership/internal/repositories" "GoMembership/internal/repositories"
"GoMembership/internal/utils"
"GoMembership/pkg/errors" "GoMembership/pkg/errors"
) )
@@ -38,7 +38,7 @@ func (service *MembershipService) FindMembershipByUserID(userID int64) (*models.
// Membership_Subscriptions // Membership_Subscriptions
func (service *MembershipService) RegisterSubscription(subscription *models.SubscriptionModel) (int64, error) { func (service *MembershipService) RegisterSubscription(subscription *models.SubscriptionModel) (int64, error) {
if err := validateSubscriptionData(subscription); err != nil { if err := validateSubscriptionData(subscription); err != nil {
return http.StatusNotAcceptable, err return -1, err
} }
return service.SubscriptionRepo.CreateSubscriptionModel(subscription) return service.SubscriptionRepo.CreateSubscriptionModel(subscription)
} }
@@ -65,8 +65,9 @@ func (service *MembershipService) GetSubscriptions(where map[string]interface{})
func validateSubscriptionData(subscription *models.SubscriptionModel) error { func validateSubscriptionData(subscription *models.SubscriptionModel) error {
validate := validator.New() validate := validator.New()
// subscriptionModel and membershipField don't have to be evaluated if adding a new subscription
validate.RegisterValidation("subscriptionModel", func(fl validator.FieldLevel) bool { return true }) validate.RegisterValidation("subscriptionModel", func(fl validator.FieldLevel) bool { return true })
validate.RegisterValidation("membershipField", func(fl validator.FieldLevel) bool { return true }) validate.RegisterValidation("membershipField", func(fl validator.FieldLevel) bool { return true })
validate.RegisterValidation("safe_content", utils.ValidateSafeContent)
return validate.Struct(subscription) return validate.Struct(subscription)
} }