feat: assignments with disabled formalities

addresses #869dnvm8c
This commit is contained in:
2026-08-26 16:15:55 +02:00
parent 5979988dcc
commit c33c1b6bf0
20 changed files with 720 additions and 67 deletions
+17 -3
View File
@@ -50,11 +50,17 @@ class DispositionVoter extends Voter
$disposition = $subject;
return match ($attribute) {
static::VIEW, static::EDIT, static::CONTRACT, static::INVOICE => $this->security->isGranted('ROLE_ADMINISTRATIVE')
static::VIEW, static::EDIT => $this->security->isGranted('ROLE_ADMINISTRATIVE')
|| $this->assertTeamerAccess($token, $disposition),
// The documents themselves do not exist on a skip-formalities assignment, so neither
// the blank PDFs nor the upload screens may be reachable for it.
static::CONTRACT, static::INVOICE => false === $disposition->isSkipFormalities()
&& ($this->security->isGranted('ROLE_ADMINISTRATIVE')
|| $this->assertTeamerAccess($token, $disposition)),
static::DELETE => $this->security->isGranted('ROLE_ADMIN'),
static::FEEDBACK => $this->security->isGranted('ROLE_ADMINISTRATIVE')
|| $this->assertHouseManagerAccess($token, $disposition),
static::FEEDBACK => false === $disposition->isSkipFormalities()
&& ($this->security->isGranted('ROLE_ADMINISTRATIVE')
|| $this->assertHouseManagerAccess($token, $disposition)),
static::CONTRACT_SUPPLEMENTARY => $this->assertContractUploadAllowed($disposition),
static::ADMIN_DOCUMENT_UPLOAD => $this->assertAdminDocumentUploadAllowed($disposition),
static::CALL_OFF => $this->security->isGranted('ROLE_ADMINISTRATIVE')
@@ -105,6 +111,10 @@ class DispositionVoter extends Voter
return false;
}
if (true === $disposition->isSkipFormalities()) {
return false;
}
if (Disposition::STATUS_CALLED_OFF === $disposition->getStatus()) {
return false;
}
@@ -121,6 +131,10 @@ class DispositionVoter extends Voter
return false;
}
if (true === $disposition->isSkipFormalities()) {
return false;
}
return Disposition::STATUS_CALLED_OFF !== $disposition->getStatus();
}
}