From c6c6e5f75c2c5da2473fc58c09f97d6dc7e61732 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Thu, 11 Dec 2025 15:14:34 -0300 Subject: [PATCH] fix: respect status 0 (DRAFT) when adding new signers When adding a new signer with status 0, the backend was ignoring it because empty() treated 0 as falsy. Changed to isset() to properly handle status 0. Also updated determineInitialStatus() to allow new signers to be added in DRAFT mode even when the file is not in DRAFT status, allowing gradual signer addition before requesting signatures. Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- lib/Service/RequestSignatureService.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Service/RequestSignatureService.php b/lib/Service/RequestSignatureService.php index 12a750d67d..2ae89cf223 100644 --- a/lib/Service/RequestSignatureService.php +++ b/lib/Service/RequestSignatureService.php @@ -53,7 +53,7 @@ public function __construct( public function save(array $data): FileEntity { $file = $this->saveFile($data); $this->saveVisibleElements($data, $file); - if (empty($data['status'])) { + if (!isset($data['status'])) { $data['status'] = $file->getStatus(); } $this->associateToSigners($data, $file->getId()); @@ -289,6 +289,8 @@ private function associateToSigner( } private function determineInitialStatus(int $signingOrder, ?int $fileStatus = null): \OCA\Libresign\Enum\SignRequestStatus { + // If fileStatus is explicitly DRAFT (0), keep signer as DRAFT + // This allows adding new signers in DRAFT mode even when file is not in DRAFT status if ($fileStatus === FileEntity::STATUS_DRAFT) { return \OCA\Libresign\Enum\SignRequestStatus::DRAFT; }