Certifikáty na modeloch
Trait HasCertificates pridajte ľubovoľnému Eloquent modelu, ktorý vlastní domény — tenantovi, webu, tímu. Certifikáty sa pripájajú cez nullable morph certifiable v registri. Vystavíte ich cez fasádu s owner(), alebo skratkou requestCertificate() z traitu, ktorá volá ten istý CertificatesManager::issue():
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Certificates\Concerns\HasCertificates;
use RoundlyConsulting\Certificates\Facades\Certificates;
class Tenant extends Model
{
use HasCertificates;
}
Certificates::for('shop.example.com')->owner($tenant)->issue(); // issue, owned by $tenant
$tenant->requestCertificate('shop.example.com'); // the same shorthand, via the manager
$tenant->requestCertificate('shop.example.com', 'acme'); // ...on a specific driver
$tenant->certificateFor('shop.example.com'); // ?Certificate — the latest
$tenant->hasCertificateFor('shop.example.com'); // bool
$tenant->certificates()->get(); // every certificate it owns
$tenant->activeCertificates();
$tenant->expiringCertificates(days: 14);- certificates() — vzťah MorphMany s nakonfigurovaným modelom registra.
- requestCertificate($domain, ?$driver) — vystaví certifikát, ktorého vlastníkom je model, cez manager, takže ho Certificates::fake() zaznamená.
- certificateFor($domain) — posledný certifikát modelu pre primárnu doménu, alebo null.
- hasCertificateFor($domain) — či má model pre doménu akýkoľvek certifikát.
- activeCertificates() — certifikáty modelu v scope active().
- expiringCertificates(?$days) — certifikáty s expiráciou do $days dní, predvolene renewal.threshold_days.
Vlastník z buildera
Builder priradí vlastníka spolu so SAN doménami, driverom a meta údajmi:
Certificates::for('shop.example.com')
->alsoFor('www.shop.example.com')
->owner($tenant)
->using('acme')
->issue();Životný cyklus cez fasádu
Trait certifikáty len vystavuje a číta. Obnovu, odvolanie a expiráciu certifikátu vlastníka riešite cez fasádu:
use RoundlyConsulting\Certificates\Facades\Certificates;
Certificates::renew($tenant->certificateFor('shop.example.com'));
Certificates::for('shop.example.com')->revoke('tenant closed');Vlastník nie je dôležitý len pre vyhľadávanie: ak neexistuje explicitný ani nakonfigurovaný príjemca, upozornenia na expiráciu idú vlastníkovi certifikátu cez certifiable (pozri Sledovanie expirácie). Ak majú vlastníci UUID alebo ULID kľúče, použite key_type uuid alebo ulid.
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.