Commit 2e9a92bb authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Page de connexion scindée par type de'authentification activée (requiert unicaen/auth 3.1.0).

parent a0e3b838
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
Journal des modifications
=========================

2.1.2
-----
- Page de connexion scindée par type de'authentification activée.

2.1.1
-----
- Liste des thèses : tri par date de 1ere inscription décroissante
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
        "ext-gettext":                   "*",
        "ext-zip":                       "*",
        "unicaen/app":                   "^3.0",
        "unicaen/auth":                  "^3.0",
        "unicaen/auth":                  "dev-release-3.1.0",
        "unicaen/bjy-authorize":         "^3.0",
        "unicaen/db-import":             "dev-master",
        "unicaen/faq":                   "^3.0",
+6 −4
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "568e80a67a9b631e170c9feaacb2a64c",
    "content-hash": "80fc03fbdf5cc5d01f9bde726dbf6253",
    "packages": [
        {
            "name": "beberlei/assert",
@@ -1325,6 +1325,7 @@
                "reflection",
                "static"
            ],
            "abandoned": "roave/better-reflection",
            "time": "2020-03-27T11:06:43+00:00"
        },
        {
@@ -3480,11 +3481,11 @@
        },
        {
            "name": "unicaen/auth",
            "version": "3.0.11",
            "version": "dev-release-3.1.0",
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/auth.git",
                "reference": "2dbfeb9eef8a0f0bafb056c54395b394a3671953"
                "reference": "1b40f6431ee2f145c52ba73cd8992b46dfa29612"
            },
            "require": {
                "jasig/phpcas": "^1.3",
@@ -3506,7 +3507,7 @@
                ]
            },
            "description": "Module d'authentification pour les applications Unicaen",
            "time": "2020-10-07T10:53:38+00:00"
            "time": "2020-11-24T11:18:48+00:00"
        },
        {
            "name": "unicaen/bjy-authorize",
@@ -8037,6 +8038,7 @@
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": {
        "unicaen/auth": 20,
        "unicaen/db-import": 20
    },
    "prefer-stable": false,
+5 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ class UserWrapperFactory
     * Instancie à partir des données issues d'un StorageChainEvent, si possible.
     *
     * @param StorageChainEvent $event
     * @return UserWrapper
     * @return UserWrapper|null
     */
    public function createInstanceFromStorageChainEvent(StorageChainEvent $event)
    {
@@ -36,6 +36,10 @@ class UserWrapperFactory
        }

        $userData = $this->extractUserDataFromArray($contents);
        if ($userData === null) {
            return null;
        }

        $individu = $this->extractIndividuFromArray($contents);

        $inst->setUserData($userData);
+7 −22
Original line number Diff line number Diff line
@@ -25,37 +25,21 @@ class UserContextService extends BaseUserContextService
    use SourceCodeStringHelperAwareTrait;

    /**
     * @inheritDoc
     * @var RoleInterface
     */
    public function getSelectableIdentityRoles()
    {
        return array_filter($this->getIdentityRoles(), function($r) {
            if ($r instanceof RoleInterface && $r->getRoleId() === Role::ROLE_ID_USER) {
                return false;
            }
            return true;
        });
    }
    protected $selectedIdentityRole;

    /**
     * @return Role|RoleInterface|null
     */
    public function getSelectedIdentityRole()
    {
        if ($this->selectedIdentityRole === null) {
            $role = parent::getSelectedIdentityRole();

        /**
         * Si aucun rôle n'est sélectionné, on tente de sélectionner le 1er trouvé.
         */
        if (! $role) {
            $role = current($this->getSelectableIdentityRoles());
            if (!$this->isRoleValid($role)) {
                return null;
            }
            $this->setNextSelectedIdentityRole($role);
            $this->selectedIdentityRole = $this->roleAsEntity($role);
        }

        return $this->roleAsEntity($role);
        return $this->selectedIdentityRole;
    }

    private $roleAsEntityCache = [];
@@ -79,6 +63,7 @@ class UserContextService extends BaseUserContextService
            return $this->roleAsEntityCache[$role];
        }

        // todo: ce cache me semble bien inutile, $role est toujours le même au sein d'une même requête.
        $this->roleAsEntityCache[$role] =
            $this->getEntityManager()->getRepository(Role::class)->findOneBy(['roleId' => $role]);

Loading