Predvoľby workflowov
Opakovane používajte nastavenie pravidla, kvóra a stupňov z config('approvals.workflows'):
// config/approvals.php
'workflows' => [
'payout' => ['rule' => 'quorum', 'quorum' => 2, 'required_approvers' => 3],
'release' => ['stages' => [
['rule' => 'unanimous', 'required_approvers' => 2, 'name' => 'engineering'],
['rule' => 'any', 'required_approvers' => 1, 'name' => 'product'],
]],
],Žiadosť potom otvoríte podľa názvu predvoľby:
// Flat preset — supply the approvers:
Requests::make()->workflow('payout')->requireApprovalsFrom([$a, $b, $c])->create();
// Staged preset — one approver group per stage:
Requests::make()->workflow('release')->stageApprovers([[$eng1, $eng2], [$product]])->create();- Jednoduché predvoľby použijú modely schvaľovateľov odovzdané cez requireApprovalsFrom(); samotné id sa odmietne výnimkou InvalidApprover.
- Viacstupňové predvoľby dostanú jednu skupinu schvaľovateľov na stupeň cez stageApprovers().
- Workflow má prednosť pred stages() aj pred jednoduchým zoznamom schvaľovateľov.
- Pri viacstupňových predvoľbách platí reject_on_stage_rejection z predvoľby, nie rejectOnStageRejection() z buildera.
- Neznáma alebo chybná predvoľba vyhodí výnimku enginu UnknownWorkflowException.
Expirácia predvoľby a termín žiadosti
Kolo z predvoľby vyprší spolu so žiadosťou: expires_at žiadosti (z expiresAt() alebo default_ttl) nahradí pre toto kolo vlastné expiry predvoľby, a to pre každý stupeň viacstupňovej predvoľby — pri vytvorení aj pri novom kole, ktoré otvorí reopen(). Žiadosť bez termínu si ponechá expiry predvoľby, prípadne žiadne:
// 'payout' => [..., 'expiry' => 3600]
Requests::make()->workflow('payout')->requireApprovalsFrom([$a])->expiresAt(now()->addDays(7))->create(); // round expires in 7 days
Requests::make()->workflow('payout')->requireApprovalsFrom([$a])->create(); // no deadline: round expires in 1 hourKľúče predvoľby
| Kľúč | Platí pre | Význam |
|---|---|---|
rule | jednoduchú predvoľbu, každý stupeň | unanimous, quorum, any alebo weighted (predvolene unanimous). |
quorum | jednoduchú predvoľbu, každý stupeň | Celočíselná hranica pre quorum / weighted. |
required_approvers | jednoduchú predvoľbu, každý stupeň | Koľko schvaľovateľov pravidlo počíta; pri každom stupni povinné a kladné. |
name | každý stupeň | Názov stupňa, dostupný cez currentStage()->name. |
stages | viacstupňovú predvoľbu | Neprázdny zoznam polí stupňov — jeho prítomnosť robí predvoľbu viacstupňovou. |
reject_on_stage_rejection | viacstupňovú predvoľbu | Či zamietnutý stupeň zamietne celú žiadosť (predvolene true). |
expiry | akúkoľvek predvoľbu | Sekundy, po ktorých schvaľovacie kolo enginu vyprší — platí len pre žiadosť bez vlastného termínu; inak kolo prevezme expires_at žiadosti. |
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.