From 37a35b3eda4f2844c317de568f871cc335b3beca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Fri, 30 Jan 2026 19:33:50 +0400 Subject: [PATCH] Add validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Émile Ré --- pkg/probo/trust_center_service.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/pkg/probo/trust_center_service.go b/pkg/probo/trust_center_service.go index 11d304423..8fbbbaec2 100644 --- a/pkg/probo/trust_center_service.go +++ b/pkg/probo/trust_center_service.go @@ -30,6 +30,7 @@ import ( "go.gearno.de/kit/pg" "go.probo.inc/probo/packages/emails" "go.probo.inc/probo/pkg/coredata" + "go.probo.inc/probo/pkg/filevalidation" "go.probo.inc/probo/pkg/gid" "go.probo.inc/probo/pkg/validator" ) @@ -59,6 +60,8 @@ type ( } ) +const maxBrandFileSize = 5 * 1024 * 1024 // 5MB + func (utcr *UpdateTrustCenterRequest) Validate() error { v := validator.New() @@ -78,6 +81,29 @@ func (utcndar *UploadTrustCenterNDARequest) Validate() error { return v.Error() } +func (req *UpdateTrustCenterBrandRequest) Validate() error { + fv := filevalidation.NewValidator( + filevalidation.WithCategories(filevalidation.CategoryImage), + filevalidation.WithMaxFileSize(maxBrandFileSize), + ) + + if req.LogoFile != nil && *req.LogoFile != nil { + logoFile := *req.LogoFile + if err := fv.Validate(logoFile.Filename, logoFile.ContentType, logoFile.Size); err != nil { + return fmt.Errorf("invalid logo file: %w", err) + } + } + + if req.DarkLogoFile != nil && *req.DarkLogoFile != nil { + darkLogoFile := *req.DarkLogoFile + if err := fv.Validate(darkLogoFile.Filename, darkLogoFile.ContentType, darkLogoFile.Size); err != nil { + return fmt.Errorf("invalid dark logo file: %w", err) + } + } + + return nil +} + func (s TrustCenterService) Get( ctx context.Context, trustCenterID gid.GID, @@ -315,6 +341,10 @@ func (s TrustCenterService) UpdateTrustCenterBrand( ctx context.Context, req *UpdateTrustCenterBrandRequest, ) (*coredata.TrustCenter, *coredata.File, error) { + if err := req.Validate(); err != nil { + return nil, nil, err + } + var trustCenter *coredata.TrustCenter var ndaFile *coredata.File