Commit e988eafd authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

IdentityProviders

parent be9887fe
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ namespace UnicaenUtilisateur\Controller;

use BjyAuthorize\Provider\Identity\ProviderInterface;
use DateTime;
use Exception;
use UnicaenApp\View\Model\CsvModel;
use UnicaenUtilisateur\Entity\Db\RoleInterface;
use UnicaenUtilisateur\Entity\Db\UserInterface;
@@ -11,18 +12,21 @@ use UnicaenUtilisateur\Form\Role\RoleFormAwareTrait;
use UnicaenUtilisateur\Service\Role\RoleServiceAwareTrait;
use Zend\Http\Request;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\Mvc\Plugin\FlashMessenger\FlashMessenger;
use Zend\View\Model\ViewModel;

/** @method FlashMessenger flashMessenger() */

class RoleController extends AbstractActionController {
    use RoleServiceAwareTrait;
    use RoleFormAwareTrait;

    /** @var ProviderInterface */
    private $identityProvider;
    private $identityProviders;

    public function setIdentityProvider($provider)
    public function setIdentityProviders($provider)
    {
        $this->identityProvider = $provider;
        $this->identityProviders = $provider;
    }

    public function indexAction()
@@ -33,7 +37,7 @@ class RoleController extends AbstractActionController {
        return new ViewModel([
            'title' => "Gestion des rôles",
            'roles' => $roles,
            'identityprovider' => $this->identityProvider,
            'identityproviders' => $this->identityProviders,
        ]);
    }

@@ -49,8 +53,10 @@ class RoleController extends AbstractActionController {
                return $a->getDisplayName() > $b->getDisplayName();
            });
        } else {
            if ($this->identityProvider !== null) {
                $users = $this->identityProvider->computeUsersAutomatiques($role->getRoleId());
            if ($this->identityProviders !== null) {
                foreach ($this->identityProviders as $identityProvider) {
                    $users = array_merge($users, $identityProvider->computeUsersAutomatiques($role->getRoleId()));
                }
            }
        }

+4 −4
Original line number Diff line number Diff line
@@ -25,16 +25,16 @@ class RoleControllerFactory {
        $config = $container->get('Config');
        $roleForm = $container->get('FormElementManager')->get(RoleForm::class);

        $identityProvider = null;
        $identityProviders = [];
        if ($config['unicaen-utilisateur']['identity-provider'] !== "") {
            if (isset($config['unicaen-utilisateur']['identity-provider'])) {
                $identityProviderPath = $config['unicaen-utilisateur']['identity-provider'];
                $identityProvider = $container->get($identityProviderPath);
                $identityProviderPaths = $config['unicaen-utilisateur']['identity-provider'];
                foreach ($identityProviderPaths as $identityProviderPath) $identityProviders[] = $container->get($identityProviderPath);
            }
        }

        $controller = new RoleController();
        $controller->setIdentityProvider($identityProvider);
        $controller->setIdentityProviders($identityProviders);
        $controller->setRoleService($roleService);
        $controller->setRoleForm($roleForm);
        
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
            <generator strategy="IDENTITY"/>
        </id>

<!--        <field name="id" type="integer" column="ID" nullable="false"/>-->
        <field name="roleId" type="string" column="ROLE_ID" length="64" nullable="false"/>
        <field name="libelle" type="string" column="LIBELLE" length="64" nullable="false"/>
        <field name="default" type="boolean" column="IS_DEFAULT" nullable="false"/>
+12 −8
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ use UnicaenUtilisateur\Provider\Privilege\RolePrivileges;

/**
 * @var RoleInterface[] $roles
 * @var $identityprovider
 * @var $identityproviders
 *
 * @see RoleController::indexAction()
 */
@@ -72,15 +72,19 @@ $canEffacer = $this->isAllowed(RolePrivileges::getResourceId(RolePrivileges:
                </td>
                <td>
                    <?php if ($role->isAuto()) : ?>
                        <?php if ($identityprovider !== null) : ?>
                        <?php if ($identityproviders !== null) : ?>
                            <?php
                                $result = $identityprovider->computeUsersAutomatiques($role->getRoleId());
                                if($result): ?>
                                $result = [];
                                foreach ($identityproviders as $identityprovider) {
                                    $computed = $identityprovider->computeUsersAutomatiques($role->getRoleId());
                                    if ($computed !== null) $result = array_merge($result, $computed);
                                }
                            ?>
                            <?php if($result): ?>
                                <i class="fas fa-user"></i> <?php echo $nbUser; ?>
                            <?php else: ?>
                                <span class="text-warning"><i class="fas fa-exclamation-triangle"></i> Aucune méthode de calcul associée à ce rôle automatique.</span>
                            <?php endif; ?>
                            ?>
                        <?php endif; ?>
                    <?php else: ?>
                        <a href="#" data-toggle="popover" data-placement="left" data-html="true" data-content="<?php echo implode("<br />", $listing); ?>">