Как загрузить ACL / bjyauthorize после аутентификации пользователя?

Я установил ZendFramework bjyauthorize.
Я также установил zfcuser, но я не хочу использовать это.
У меня есть другой модуль аутентификации.
Я хотел бы знать, как я могу запустить или загрузить bjyauthorize role / ACL, после того как пользователь будет аутентифицирован.

Это правильный поставщик?

namespace Firewall\Provider\Identity;

//use BjyAuthorize\Provider\Identity;
//use BjyAuthorize\Exception\InvalidRoleException;
//use Zend\Db\Adapter\Adapter;
//use Zend\Db\Sql\Where;
//use Zend\Db\Sql\Sql;
//use Zend\Db\Sql\Select;
//use Zend\Permissions\Acl\Role\RoleInterface;
//use Zend\Authentication\Storage\Session as SessionStorage;
//use BjyAuthorize\Provider\Identity\ProviderInterface;
//use Zend\Db\TableGateway\TableGateway;
//use Zend\Db\Sql\Expression;
//use Zend\Authentication\AuthenticationService;
//
//class Myprovider implements  ProviderInterface {
//
//
//
//public function setDbAdapter();
//public function getDbAdapter();
//public function getIdentityRoles();
//public function getDefaultRole();
//public function getRoles();
//
//}



use BjyAuthorize\Provider\Identity\ProviderInterface;
use Zend\Authentication\AuthenticationService;

class Myprovider implements ProviderInterface
{
//    public function getDefaultRole()
//    {
//        $aTest = "test";
//        return new Debug();
//    }

public function getIdentityRoles()
{
$oIdentity = $this->getIdentity();

$aRoles = [];
if(!empty($oIdentity))
{
$aRoles = $oIdentity->getRoles();
}

return $aRoles;
}

protected $authService;

public function __construct(AuthenticationService $authService)
{
$this->authService = $authService;
}
public function setAdapter($adapter)
{
return $this->authService->setAdapter($adapter);
}
public function getAdapter()
{
return $this->authService->getAdapter();
}

public function getStorage()
{
return $this->authService->getStorage();
}

public function getIdentity()
{
return $this->authService->getIdentity();
}

public function clearIdentity()
{
return $this->authService->clearIdentity();
}
}

0

Решение

bjyAuthorize не взаимодействует напрямую с вашим модулем аутентификации. Ему просто нужна роль текущего вошедшего в систему пользователя. Это происходит через провайдера идентификации. Поэтому вы должны расширить ProviderInterface для провайдера идентификации, чтобы он возвращал роли, принадлежащие текущему вошедшему в систему пользователю.

Интерфейс провайдера идентификации

Возможно, вам также следует изменить (или сделать свой собственный) поставщик ролей по умолчанию, чтобы он возвращал роли, которые вы определили для своего модуля аутентификации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]