fix(pdgengines): encrypt behavior accross different engines

This commit is contained in:
Julien Neuhart
2025-09-01 20:26:34 +02:00
parent ba944f9dc2
commit 0ad6623e24
8 changed files with 165 additions and 19 deletions

View File

@@ -270,6 +270,16 @@ func EncryptPdfStub(ctx *api.Context, engine gotenberg.PdfEngine, userPassword,
for _, inputPath := range inputPaths {
err := engine.Encrypt(ctx, ctx.Log(), inputPath, userPassword, ownerPassword)
if err != nil {
if errors.Is(err, gotenberg.ErrPdfEngineEncryptionPasswordsNotSupported) {
return api.WrapError(
err,
api.NewSentinelHttpError(
http.StatusBadRequest,
"Invalid form data: both 'userPassword' and 'ownerPassword' form fields must be provided and different",
),
)
}
return fmt.Errorf("encrypt PDF '%s': %w", inputPath, err)
}
}