lean/skeleton/meta/definitions/security.php

34 lines
874 B
PHP

<?php
use Storage\Session;
use Taxus\{ Privilege, Taxus, PermissionGrantInterface, DefaultPermissionGrant };
use Psr\Http\Message\ServerRequestInterface;
use function DI\{ create, get, add };
return [
Taxus::class => function ($c) {
$taxus = new Taxus( ... $c->get('taxus.gates') );
$list = [];
foreach($c->get(Lean\Lean::class)->getTaxusPrivileges() as $key => $privilege) {
foreach($privilege as $name => $description) {
$list[] = [ new Privilege($name, $description), $key ];
}
}
$taxus->add(... $list);
return $taxus;
},
'taxus.gates' => add([
get(PermissionGrantInterface::class),
]),
PermissionGrantInterface::class => create(%NAMESPACE%\PrivilegeGrantAccess::class)->constructor(get(ServerRequestInterface::class), get(Session::class)),
];