diff --git a/CHANGELOG.md b/CHANGELOG.md
index 72f12dec75ed0bd16f441e95778ceb5fc5fba80a..6b4bbdf78392e390df14a5015d7cf98ad3e07332 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,50 +1,59 @@
 CHANGELOG
 =========
 
-3.0.0 (17/09/2019)
-------------------
-Première version officielle sous ZF3.
+3.2.0
+-----
+- Configuration de la stratégie d'extraction d'un identifiant utile parmi les données d'authentification shibboleth
+  (config 'shib_user_id_extractor').
+- Possibilité de connaître la source de l'authentification (db, ldap, cas, shib).
+- Possibilité de stopper l'usurpation en cours pour revenir à l'identité d'origine.
+- Enregistrement du dernier rôle sélectionné pour pouvoir y revenir à la reconnexion.
+  *ATTENTION : nouvelle colonne `LAST_ROLE_ID` à créer dans la table `USER`, cf. SQL dans [data/](./data/).*
+- [FIX] Usurpation d'un compte local en BDD.
+- [FIX] Lorsque l'usurpateur stoppait l'usurpation, il ne récupérait pas son dernier endossé
+- [FIX] En cas d'usurpation puis de déconnexion puis de reconnexion, on revenait dans la peau de l'usurpé sans pouvoir
+  stopper l'usurpation
 
-3.0.1 (18/09/2019)
-------------------
-- Corrections
-  - Correction de ModuleOptionsFactory qui ne respectait son interface FactoryInterface.     
 
-3.0.11 (07/10/2020)
--------------------
-- Affichage de l'utilisateur connecté : ajout d'un triangle indiquant que ça se déroule.
+3.1.2
+-----
+- Aide de vue UserUsurpationHelper : ajout de la possibilité de dessiner un simple bouton.
+
+
+3.1.1
+-----
+- Correction bug : test d'activation manquant dans les adapteurs Db et Ldap.
 
-3.0.12 (05/11/2020)
--------------------
-- Ajout d'une méthode pour pouvoir purger la liste des rôles courante.
 
 3.1.0
 -----
 - Typage des authentifications
-    - Pages de connexion différentes selon le type d'authentification : shib ; db ou ldap ; cas.
-    - Possibilité d'ordonner les formulaires de connexion proposés (config).
-    - Possibilité d'ajouter une description HTML à chaque formulaire de connexion (config).
-    - Chaque adapter peut désormais tester s'il est compétent pour traiter la requête d'authentification.
-    - Création d'un adapter d'authentification comme les autres pour Shib.
+  - Pages de connexion différentes selon le type d'authentification : shib ; db ou ldap ; cas.
+  - Possibilité d'ordonner les formulaires de connexion proposés (config).
+  - Possibilité d'ajouter une description HTML à chaque formulaire de connexion (config).
+  - Chaque adapter peut désormais tester s'il est compétent pour traiter la requête d'authentification.
+  - Création d'un adapter d'authentification comme les autres pour Shib.
 - Réparation du mécanisme de redirection vers l'URL demandée avant connexion.
 - Correction du bug de rémanence de l'authentification shibboleth simulée.
-- Authentification LDAP : levée d'une exception en cas de survenue d'une erreur LDAP. 
+- Authentification LDAP : levée d'une exception en cas de survenue d'une erreur LDAP.
 
-3.1.1
------
-- Correction bug : test d'activation manquant dans les adapteurs Db et Ldap.
 
-3.1.2
------
-- Aide de vue UserUsurpationHelper : ajout de la possibilité de dessiner un simple bouton.
+3.0.12 (05/11/2020)
+-------------------
+- Ajout d'une méthode pour pouvoir purger la liste des rôles courante.
 
-3.2.0
------
-- Configuration de la stratégie d'extraction d'un identifiant utile parmi les données d'authentification shibboleth
-  (config 'shib_user_id_extractor').
-- Possibilité de connaître la source de l'authentification (db, ldap, cas, shib).
-- Possibilité de stopper l'usurpation en cours pour revenir à l'identité d'origine.
-- [FIX] Usurpation d'un compte local en BDD.
-- [FIX] Lorsque l'usurpateur stoppait l'usurpation, il ne récupérait pas son dernier endossé
-- [FIX] En cas d'usurpation puis de déconnexion puis de reconnexion, on revenait dans la peau de l'usurpé sans pouvoir 
-  stopper l'usurpation
\ No newline at end of file
+
+3.0.11 (07/10/2020)
+-------------------
+- Affichage de l'utilisateur connecté : ajout d'un triangle indiquant que ça se déroule.
+
+
+3.0.1 (18/09/2019)
+------------------
+- Corrections
+  - Correction de ModuleOptionsFactory qui ne respectait son interface FactoryInterface.
+
+
+3.0.0 (17/09/2019)
+------------------
+Première version officielle sous ZF3.
\ No newline at end of file
diff --git a/data/schema.sqlite.sql b/data/schema.sqlite.sql
index d903a9e28b4c65c76724393191c44132e7352a9d..5e8a087ac525dad531be819c7f0320c28125fd3c 100644
--- a/data/schema.sqlite.sql
+++ b/data/schema.sqlite.sql
@@ -5,7 +5,8 @@ CREATE TABLE IF NOT EXISTS user
     email        VARCHAR(255) DEFAULT NULL,
     display_name VARCHAR(64)  DEFAULT NULL,
     password     VARCHAR(128)                      NOT NULL,
-    state        SMALLINT     default 1
+    state        SMALLINT     default 1,
+    last_role_id INTEGER      default null
 );
 ALTER TABLE user ADD PASSWORD_RESET_TOKEN varchar(256) DEFAULT NULL;
 CREATE UNIQUE INDEX user_unique_username ON user(username);
diff --git a/data/schema_mysql.sql b/data/schema_mysql.sql
index e4f08904f8edd55e22d67ac6b286187ef99d13a0..4b17d9a36ad48bc9b61bb77c651f7465a989cb4a 100644
--- a/data/schema_mysql.sql
+++ b/data/schema_mysql.sql
@@ -5,6 +5,7 @@ CREATE TABLE user (
     display_name VARCHAR(64) DEFAULT NULL,
     password VARCHAR(128) NOT NULL,
     state SMALLINT default 1,
+    last_role_id INT(11) default null,
   PRIMARY KEY (id),
   UNIQUE INDEX unique_username (username ASC)
 ) ENGINE=InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
diff --git a/data/schema_oracle.sql b/data/schema_oracle.sql
index c1ff9a39d54cd9a9a2cbfc7b9135e33e12b8b9ed..19cea72888b9d66f4f4f9d45dfe712d756d98653 100644
--- a/data/schema_oracle.sql
+++ b/data/schema_oracle.sql
@@ -5,8 +5,10 @@ CREATE TABLE "USER"
 	 "DISPLAY_NAME" VARCHAR2(64 CHAR),
 	 "PASSWORD" VARCHAR2(128 CHAR) NOT NULL ENABLE,
 	 "STATE" SMALLINT DEFAULT 1 NOT NULL ENABLE,
+     "last_role_id" NUMBER(*,0),
 	CONSTRAINT "USER_PK" PRIMARY KEY ("ID"),
-	CONSTRAINT "USER_USERNAME_UN" UNIQUE ("USERNAME")
+	CONSTRAINT "USER_USERNAME_UN" UNIQUE ("USERNAME"),
+    CONSTRAINT "USER_LAST_ROLE_FK" FOREIGN KEY ("last_role_id") REFERENCES USER_ROLE ("ID") ENABLE
 );
 CREATE SEQUENCE "USER_ID_SEQ" ;
 
diff --git a/data/schema_postgresql.sql b/data/schema_postgresql.sql
index ccef50c1781f542d6d5e6a83f37dae472f143ba4..21b51a142c81b81ce4e9b90c877992203d0a8b14 100644
--- a/data/schema_postgresql.sql
+++ b/data/schema_postgresql.sql
@@ -4,7 +4,9 @@ CREATE TABLE "user" (
   email VARCHAR(255) DEFAULT NULL,
   display_name VARCHAR(64) DEFAULT NULL,
   password VARCHAR(128) NOT NULL,
-  state SMALLINT default 1
+  state SMALLINT default 1,
+  last_role_id SMALLINT,
+  FOREIGN KEY (last_role_id) REFERENCES user_role (id) ON DELETE SET NULL
 ) ;
 CREATE UNIQUE INDEX user_username_unique ON "user" (username);