Commit 448bf935 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Adaptation des assertions au ZF3

Fourniture d'une factory à utiliser par défaut
parent d4b42da1
Loading
Loading
Loading
Loading
+17 −57
Original line number Diff line number Diff line
@@ -3,11 +3,11 @@
namespace UnicaenAuth\Assertion;

use BjyAuthorize\Service\Authorize;
use UnicaenApp\ServiceManager\ServiceLocatorAwareInterface;
use UnicaenApp\ServiceManager\ServiceLocatorAwareTrait;
use UnicaenAuth\Service\AuthorizeService;
use UnicaenAuth\Service\Traits\AuthorizeServiceAwareTrait;
use UnicaenAuth\Service\Traits\UserContextServiceAwareTrait;
use UnicaenAuth\Service\UserContext;
use Zend\Mvc\MvcEvent;
use Zend\Mvc\Plugin\FlashMessenger\FlashMessenger;
use Zend\Permissions\Acl\Acl;
use Zend\Permissions\Acl\Assertion\AssertionInterface;
use Zend\Permissions\Acl\Resource\ResourceInterface;
@@ -18,10 +18,10 @@ use Zend\Permissions\Acl\Role\RoleInterface;
 *
 * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr>
 */
abstract class AbstractAssertion implements AssertionInterface, ServiceLocatorAwareInterface
abstract class AbstractAssertion implements AssertionInterface
{
    use ServiceLocatorAwareTrait;
    use UserContextServiceAwareTrait;
    use AuthorizeServiceAwareTrait;

    /**
     * @var Acl
@@ -34,9 +34,9 @@ abstract class AbstractAssertion implements AssertionInterface, ServiceLocatorAw
    private $role = false;

    /**
     * @var FlashMessenger
     * @var MvcEvent
     */
    private $fm;
    private $mvcEvent;



@@ -120,6 +120,7 @@ abstract class AbstractAssertion implements AssertionInterface, ServiceLocatorAw
        if (!$this->acl) {
            $this->acl = $this->getServiceAuthorize()->getAcl();
        }

        return $this->acl;
    }

@@ -145,11 +146,12 @@ abstract class AbstractAssertion implements AssertionInterface, ServiceLocatorAw
    public function getRole()
    {
        if (false === $this->role) {
            $sUserContext = $this->getServiceUserContext();
            $sUserContext = $this->serviceUserContext;
            if ($sUserContext->getIdentity()) {
                $this->role = $sUserContext->getSelectedIdentityRole();
            }
        }

        return $this->role;
    }

@@ -295,19 +297,15 @@ abstract class AbstractAssertion implements AssertionInterface, ServiceLocatorAw
        return true;
    }

    /**
     * @var MvcEvent
     */
    private $mvcEvent;

    /**
     * @param MvcEvent $mvcEvent
     */

    public function setMvcEvent(MvcEvent $mvcEvent)
    {
        $this->mvcEvent = $mvcEvent;
    }



    /**
     * @return MvcEvent
     */
@@ -316,42 +314,4 @@ abstract class AbstractAssertion implements AssertionInterface, ServiceLocatorAw
        return $this->mvcEvent;
    }

    /**
     * @var Authorize
     */
    private $serviceAuthorize;

    /**
     * @param Authorize $serviceAuthorize
     */
    public function setServiceAuthorize(Authorize $serviceAuthorize)
    {
        $this->serviceAuthorize = $serviceAuthorize;
    }

    /**
     * @return Authorize
     */
    private function getServiceAuthorize()
    {
        return $this->serviceAuthorize;
    }

    /**
     * @param FlashMessenger $fm
     * @deprecated Merci d'abandonner cette méthode : SoC violation !
     */
    public function setFlashMessenger(FlashMessenger $fm)
    {
        $this->fm = $fm;
    }

    /**
     * @return FlashMessenger
     * @deprecated Merci d'abandonner cette méthode : SoC violation !
     */
    protected function flashMessenger()
    {
        return $this->fm;
    }
}
 No newline at end of file
+44 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenAuth\Assertion;

use BjyAuthorize\Service\Authorize;
use Interop\Container\ContainerInterface;
use Zend\Authentication\AuthenticationService;
use Zend\Mvc\Application;
use Zend\ServiceManager\Factory\FactoryInterface;

/**
 * Class AssertionFactory
 *
 * @package UnicaenAuth\Assertion
 */
class AssertionFactory implements FactoryInterface
{
    /**
     * @param ContainerInterface $container
     *
     * @return UserContext
     */
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        /* @var $application Application */
        $application = $container->get('Application');
        $mvcEvent    = $application->getMvcEvent();

        /* @var $serviceAuthorize Authorize */
        $serviceAuthorize = $container->get('BjyAuthorize\Service\Authorize');

        /** @var UserContext $serviceUserContext */
        $serviceUserContext = $container->get('UnicaenAuth\Service\UserContext');

        /* @var $assertion AbstractAssertion */
        $assertion = new $requestedName;

        $assertion->setMvcEvent($mvcEvent);
        $assertion->setServiceAuthorize($serviceAuthorize);
        $assertion->setServiceUserContext($serviceUserContext);

        return $assertion;
    }
}