nattreid / security

Nette 框架的安全扩展

1.8.0 2022-01-19 11:15 UTC

README

数据库ACL、用户、认证和授权

设置

config.neon 中的设置

extensions:
    securityExt: NAttreid\Security\DI\SecurityExtension

可用的设置

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

并将其添加到orm模型。在示例中,extension orm名为 orm

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

认证器

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

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

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

TryUser

用于临时更改用户身份的组件

在 BasePresenter 中添加组件

    /** @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;
    }