NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Publikovaný config/approvals.php bez komentárov:

use RoundlyConsulting\Approvals\Models\Approval;
use RoundlyConsulting\Approvals\Models\ApprovalDelegation;
use RoundlyConsulting\Approvals\Models\ApprovalRequest;
use RoundlyConsulting\Approvals\Models\ApprovalRequestStage;

return [
    'model' => Approval::class,
    'request_model' => ApprovalRequest::class,
    'stage_model' => ApprovalRequestStage::class,
    'delegation_model' => ApprovalDelegation::class,

    'key_type' => env('APPROVALS_KEY_TYPE', 'bigint'),

    'authorization' => [
        'enabled' => env('APPROVALS_AUTHORIZATION', false),
        'ability' => 'decide-approval',
    ],

    'expiry' => [
        'default' => null,
    ],

    'workflows' => [
        // named presets — see Workflow presets
    ],
];

Všetky kľúče

KľúčPredvolenéEnvÚčel
modelApproval::class—Model rozhodnutí. Musí rozširovať Approval z balíka.
request_modelApprovalRequest::class—Model žiadostí pre viacerých schvaľovateľov. Musí rozširovať ApprovalRequest.
stage_modelApprovalRequestStage::class—Model stupňov viacstupňovej žiadosti. Musí rozširovať ApprovalRequestStage.
delegation_modelApprovalDelegation::class—Model delegovaní. Musí rozširovať ApprovalDelegation.
key_typebigintAPPROVALS_KEY_TYPETyp všetkých polymorfných id stĺpcov — bigint, uuid alebo ulid. Číta ho migrácia, preto ho nastavte pred migráciou; iná hodnota vyhodí InvalidConfigurationException.
authorization.enabledfalseAPPROVALS_AUTHORIZATIONKaždú cestu rozhodnutia — schválenie, zamietnutie, prepnutie, vyžiadanie aj stiahnutie — preverí cez Gate ability. Zapnú ju env reťazce true, 1, yes a on, vypnú false, 0, no a off, prázdna hodnota sa považuje za nenastavenú (teda false) a čokoľvek iné vyhodí InvalidConfigurationException.
authorization.ability'decide-approval'—Gate ability, ktorá sa overí voči schvaľovanému modelu. Nenastavená hodnota (null alebo prázdna) znamená decide-approval; hodnota, ktorá nie je reťazcom, vyhodí InvalidConfigurationException namiesto overenia inej ability.
expiry.defaultnull—Platnosť v sekundách (≥ 1) pre schválenie bez vlastnej expirácie; po jej uplynutí sa prestane počítať. Nenastavená hodnota (null alebo prázdna) znamená, že schválenia nevypršia, kým si rozhodnutie nenastaví vlastnú; čokoľvek, čo nie je kladné celé číslo, vyhodí InvalidConfigurationException.
workflows[]—Pomenované šablóny workflow. Nenastavená hodnota (null alebo prázdna) znamená žiadne; akákoľvek iná hodnota, ktorá nie je pole, vyhodí InvalidConfigurationException.

Prostredie

Dva kľúče sa dajú nastaviť cez env:

APPROVALS_AUTHORIZATION=true
APPROVALS_KEY_TYPE=uuid

APPROVALS_KEY_TYPE sa číta pri behu migrácií, nie za behu aplikácie — nastavte ho ešte pred migráciou.

php artisan about

Balík pridá do php artisan about sekciu Approvals. Gate ability uvádza len podľa toho, či je nastavená, a šablóny workflow len počtom, takže vaše autorizačné pojmy ani názvy firemných procesov sa vo výstupe nikdy neobjavia:

php artisan about --only=approvals
RiadokZobrazuje
Model / Request model / Stage model / Delegation modelNázov triedy každého nakonfigurovaného modelu.
AuthorizationENFORCED alebo OFF.
AbilityDEFAULT (nenastavená — null alebo prázdna — alebo decide-approval), SET (vlastný názov, nikdy sa nevypíše) alebo INVALID.
Default expiryHodnota expiry.default v sekundách, napr. 86400s — NEVER, alebo INVALID, keď by hodnota vyhodila výnimku.
Workflow presetsPočet šablón, napr. 2 defined — NONE, alebo INVALID, keď workflows nie je pole.

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 kryptomien

Odoslaní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.