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

Nastavte approvals.authorization.enabled na true — alebo env premennú, ktorá prijme aj 1, yes a on (false, 0, no a off ju vypnú, pri prázdnej hodnote zostane vypnutá; čokoľvek iné vyhodí InvalidConfigurationException) — a každá cesta rozhodnutia prejde kontrolou cez Gate ability:

APPROVALS_AUTHORIZATION=true

Balík Gate nikdy nedefinuje sám — urobí to vaša aplikácia:

use Illuminate\Support\Facades\Gate;

Gate::define('decide-approval', fn ($user, $approvable) => $user->can('review', $approvable));

Odmietnutie cez Gate vyhodí UnauthorizedApprovalException ešte predtým, než sa čokoľvek zapíše:

use RoundlyConsulting\Approvals\Exceptions\UnauthorizedApprovalException;
use RoundlyConsulting\Approvals\Facades\Approvals;

try {
    Approvals::for($deployment)->as($intern)->approve();
} catch (UnauthorizedApprovalException $e) {
    // the gate denied this actor — nothing was recorded
}

Ako kontrola prebieha

  • Stráži approve(), reject(), toggle(), ask() aj cancel() — cez fasádu, traity, testovacích pomocníkov aj akcie.
  • Ability sa overuje cez Gate::forUser() voči schvaľovanému modelu pre model, ktorý koná, takže aktér nemusí byť prihlásený používateľ. Pri ask() je to vyžiadaný aktér.
  • Pri delegovaní sa overuje konajúci zástupca, nie delegujúci.
  • Kontrola menovaných schvaľovateľov žiadosti je samostatná a platí vždy.

Vlastný názov ability

// config/approvals.php
'authorization' => [
    'enabled' => env('APPROVALS_AUTHORIZATION', false),
    'ability' => 'review-deployment',
],

// App\Providers\AppServiceProvider::boot()
Gate::define('review-deployment', fn (User $user, Deployment $deployment) => $user->team_id === $deployment->team_id);

Nenastavená hodnota (null alebo prázdna) znamená decide-approval; ability, ktorá nie je reťazcom, vyhodí InvalidConfigurationException namiesto overenia inej ability.

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.