1

Тема: ZF2 Bjyauthorize без ZfcUser

Народ, в мене виникла така необхідність замінити модуль ZfcUser на свій, але проблема заключається в тому що Bjyauthorize працює тільки з ZfcUser. Чи можна це якось обійти, чи прийдеться писати свій плагін розподілу прав?

2

Re: ZF2 Bjyauthorize без ZfcUser

Покопався в коді і побачив наступне

 'identity_provider' => 'BjyAuthorize\Provider\Identity\ZfcUserZendDb',

https://github.com/bjyoungblood/BjyAuth … config.php - його ж можна підмінити вірно?

Якщо ви хочете підмінити модуль zfcuser вам необхідно буде реалізувати всю логіку яка використовується в BjyAuthorize  (imho)

3 Востаннє редагувалося o_0ps (23.02.2015 15:48:21)

Re: ZF2 Bjyauthorize без ZfcUser

За підказку дякую, але в мене в конфігу модуля настройка модуля BjyAuthorizer перекриваються і використовується інший файлик

/*------*/
'bjyauthorize' => array(

        'default_role' => 'guest',

        'identity_provider' => 'BjyAuthorize\Provider\Identity\AuthenticationIdentityProvider',

        'authenticated_role' => 'user',

І діло в тому що я не розумію де взагалі BjyAuthorizer звязується з ZfcUser

Post's attachments

Записати.JPG 175.27 kb, 273 downloads since 2015-02-23 

4

Re: ZF2 Bjyauthorize без ZfcUser

Ось той самий файл:

<?php
/**
 * BjyAuthorize Module (https://github.com/bjyoungblood/BjyAuthorize)
 *
 * @link https://github.com/bjyoungblood/BjyAuthorize for the canonical source repository
 * @license http://framework.zend.com/license/new-bsd New BSD License
 */

namespace BjyAuthorize\Provider\Identity;

use BjyAuthorize\Exception\InvalidRoleException;
use BjyAuthorize\Provider\Role\ProviderInterface as RoleProviderInterface;
use Zend\Permissions\Acl\Role\RoleInterface;
use Zend\Authentication\AuthenticationService;

/**
 * Simple identity provider to handle simply guest|user
 *
 * @author Ingo Walz <ingo.walz@googlemail.com>
 */
class AuthenticationIdentityProvider implements ProviderInterface
{
    /**
     * @var AuthenticationService
     */
    protected $authService;

    /**
     * @var string|\Zend\Permissions\Acl\Role\RoleInterface
     */
    protected $defaultRole = 'guest';

    /**
     * @var string|\Zend\Permissions\Acl\Role\RoleInterface
     */
    protected $authenticatedRole = 'user';

    /**
     * @param AuthenticationService $authService
     */
    public function __construct(AuthenticationService $authService)
    {
        $this->authService = $authService;
    }

    /**
     * {@inheritDoc}
     */
    public function getIdentityRoles()
    {
        if (! $identity = $this->authService->getIdentity()) {
            return array($this->defaultRole);
        }

        if ($identity instanceof RoleInterface) {
            return array($identity);
        }

        if ($identity instanceof RoleProviderInterface) {
            return $identity->getRoles();
        }

        return array($this->authenticatedRole);
    }

    /**
     * Get the rule that's used if you're not authenticated
     *
     * @return string|\Zend\Permissions\Acl\Role\RoleInterface
     */
    public function getDefaultRole()
    {
        return $this->defaultRole;
    }

    /**
     * Set the rule that's used if you're not authenticated
     *
     * @param $defaultRole
     *
     * @throws \BjyAuthorize\Exception\InvalidRoleException
     */
    public function setDefaultRole($defaultRole)
    {
        if (! ($defaultRole instanceof RoleInterface || is_string($defaultRole))) {
            throw InvalidRoleException::invalidRoleInstance($defaultRole);
        }

        $this->defaultRole = $defaultRole;
    }

    /**
     * Get the role that is used if you're authenticated and the identity provides no role
     *
     * @return string|\Zend\Permissions\Acl\Role\RoleInterface
     */
    public function getAuthenticatedRole()
    {
        return $this->authenticatedRole;
    }

    /**
     * Set the role that is used if you're authenticated and the identity provides no role
     *
     * @param string|\Zend\Permissions\Acl\Role\RoleInterface $authenticatedRole
     *
     * @throws \BjyAuthorize\Exception\InvalidRoleException
     *
     */
    public function setAuthenticatedRole($authenticatedRole)
    {
        if (! ($authenticatedRole instanceof RoleInterface || is_string($authenticatedRole))) {
            throw InvalidRoleException::invalidRoleInstance($authenticatedRole);
        }

        $this->authenticatedRole = $authenticatedRole;
    }
}

5 Востаннє редагувалося o_0ps (23.02.2015 16:12:03)

Re: ZF2 Bjyauthorize без ZfcUser

Все правильно, параметр "identity_provider" підміняється...
http://replace.org.ua/misc.php?action=pun_attachment&amp;item=744&amp;download=0

Post's attachments

Записати.JPG 166.79 kb, 252 downloads since 2015-02-23 

6

Re: ZF2 Bjyauthorize без ZfcUser

Там здається в протилежному напрямку йде, ZfcUser встановлює айдентіті для BjyAuthorize

7

Re: ZF2 Bjyauthorize без ZfcUser

https://github.com/bjyoungblood/BjyAuth … ZendDb.php
оцей файл вроді.

8

Re: ZF2 Bjyauthorize без ZfcUser

Vo_Vik написав:

Там здається в протилежному напрямку йде, ZfcUser встановлює айдентіті для BjyAuthorize

Та ніби нє:

["zfcuser"] => array(4) {
    ["user_entity_class"] => string(18) "MyUser\Entity\User"
    ["enable_default_entities"] => bool(false)
    ["auth_adapters"] => array(1) {
      [100] => string(33) "ZfcUser\Authentication\Adapter\Db"
    }
    ["table_name"] => string(5) "users"
  }

9

Re: ZF2 Bjyauthorize без ZfcUser

Давайте вже одній темі чи що?

10

Re: ZF2 Bjyauthorize без ZfcUser

Vo_Vik написав:

Давайте вже одній темі чи що?

Якщо во про цю тему http://replace.org.ua/topic/4405/, то це я створив з іншою метою, поцікавитися за інші модулі, так як можливо що є і кращі способи...

11

Re: ZF2 Bjyauthorize без ZfcUser

Тоді скопіюю свою відповідь звідти

https://github.com/bjyoungblood/BjyAuth … erface.php
- пишете Клас провайдер який реалізує цей інтерфейс
Потім в своїй апліції перевизначаєте
        // identity provider service name
        'identity_provider'     => 'BjyAuthorize\Provider\Identity\ZfcUserZendDb',
з оцього конфігу:
https://github.com/bjyoungblood/BjyAuth … config.php

12 Востаннє редагувалося o_0ps (23.02.2015 17:26:24)

Re: ZF2 Bjyauthorize без ZfcUser

Vo_Vik написав:

Тоді скопіюю свою відповідь звідти

https://github.com/bjyoungblood/BjyAuth … erface.php
- пишете Клас провайдер який реалізує цей інтерфейс
Потім в своїй апліції перевизначаєте
        // identity provider service name
        'identity_provider'     => 'BjyAuthorize\Provider\Identity\ZfcUserZendDb',
з оцього конфігу:
https://github.com/bjyoungblood/BjyAuth … config.php

Відповів в цьому топіку → http://replace.org.ua/topic/4405/, так як тут тема "...без ZfcUser "