nattreid/security

Security extension for Nette Framework

1.8.0 2022-01-19 11:15 UTC

README

Databázové ACL, uživatelé, authentizace a autorizace

Nastavení

Nastavení v config.neon

extensions:
    securityExt: NAttreid\Security\DI\SecurityExtension

dostupné nastavení

securityExt:
    namespace: 'user'
    authenticator:
        front: App\FrontAuthenticator

A přidat do orm model. V příkladu je extension orm pod názvem orm

orm:
    add:
        - NAttreid\Security\Model\Orm

Authenticator

class FrontAuthenticator implements \NAttreid\Security\Authenticator\IAuthenticator {

    public function authenticate(array $credentials): Identity {
        // php code
    }

    public function getIdentity(int $userId): Identity {
        // php code
    }
}

TryUser

Komponenta pro dočasnou změnu identity uživatele

V BasePresenteru přidejte komponentu

    /** @inject */
    public $tryUserFactory;
    
    protected function startup()
    {
        parent::startup();
        $this['tryUser']->init();
    }
    
    protected function createComponentTryUser()
    {
        $control = $this->tryUserFactory->create(":Link:Nekam:");
        $control->permission = 'nazev.prav.pro.komponentu';
        return $control;
    }