From c43e25c3d6ccfe39f6571e474989d8c9bbe614c6 Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Tue, 22 Oct 2019 16:06:59 +0200
Subject: [PATCH] FIX #12070 TIME 0:20 Remove primary_group column

---
 apps/maarch_entreprise/lang/en.php            |  9 ---
 apps/maarch_entreprise/lang/fr.php            | 12 ----
 apps/maarch_entreprise/lang/nl.php            |  3 -
 core/class/usergroups_controler.php           |  2 +-
 core/class/users_controler.php                | 65 +------------------
 migration/19.12/1912.sql                      |  7 +-
 .../class/class_modules_tools_Abstract.php    |  2 +-
 .../ReceiveMessageExchangeController.php      |  7 +-
 sql/data_en.sql                               | 57 ++++++++--------
 sql/data_fr.sql                               | 56 ++++++++--------
 sql/m2m_contacts_samples.sql                  |  2 +-
 sql/structure.sql                             |  1 -
 src/app/user/models/UserModelAbstract.php     |  5 +-
 13 files changed, 69 insertions(+), 159 deletions(-)

diff --git a/apps/maarch_entreprise/lang/en.php b/apps/maarch_entreprise/lang/en.php
index e9358b473e7..d85566e538b 100755
--- a/apps/maarch_entreprise/lang/en.php
+++ b/apps/maarch_entreprise/lang/en.php
@@ -793,9 +793,6 @@ if (!defined('_DELETE_GROUPS')) {
 if (!defined('_ADD_TO_GROUP')) {
     define('_ADD_TO_GROUP', 'Add to a group');
 }
-if (!defined('_CHOOSE_PRIMARY_GROUP')) {
-    define('_CHOOSE_PRIMARY_GROUP', 'Choose as primary group');
-}
 if (!defined('_USER_BELONGS_NO_GROUP')) {
     define('_USER_BELONGS_NO_GROUP', "The user doesn't belong to any group");
 }
@@ -1222,9 +1219,6 @@ if (!defined('_USER_UPDATE')) {
 if (!defined('_USER_ADDED')) {
     define('_USER_ADDED', 'New added user');
 }
-if (!defined('_NO_PRIMARY_GROUP')) {
-    define('_NO_PRIMARY_GROUP', 'No primary group is selected !');
-}
 if (!defined('_THE_USER')) {
     define('_THE_USER', 'The user ');
 }
@@ -4284,9 +4278,6 @@ if (!defined('_MANAGE_MY_SIGNATURES')) {
 if (!defined('_MY_GROUPS')) {
     define('_MY_GROUPS', 'My Groups');
 }
-if (!defined('_PRIMARY_GROUP')) {
-    define('_PRIMARY_GROUP', 'Primary group');
-}
 if (!defined('_SECONDARY_GROUP')) {
     define('_SECONDARY_GROUP', 'Secondary group');
 }
diff --git a/apps/maarch_entreprise/lang/fr.php b/apps/maarch_entreprise/lang/fr.php
index fd5960f1a61..04bc1f53f48 100755
--- a/apps/maarch_entreprise/lang/fr.php
+++ b/apps/maarch_entreprise/lang/fr.php
@@ -789,9 +789,6 @@ if (!defined('_DELETE_GROUPS')) {
 if (!defined('_ADD_TO_GROUP')) {
     define('_ADD_TO_GROUP', 'Ajouter à un groupe');
 }
-if (!defined('_CHOOSE_PRIMARY_GROUP')) {
-    define('_CHOOSE_PRIMARY_GROUP', 'Choisir comme groupe primaire');
-}
 if (!defined('_USER_BELONGS_NO_GROUP')) {
     define('_USER_BELONGS_NO_GROUP', "L'utilisateur n'appartient à aucun groupe");
 }
@@ -1227,9 +1224,6 @@ if (!defined('_USER_UPDATE')) {
 if (!defined('_USER_ADDED')) {
     define('_USER_ADDED', 'Nouvel utilisateur ajouté');
 }
-if (!defined('_NO_PRIMARY_GROUP')) {
-    define('_NO_PRIMARY_GROUP', 'Aucun groupe primaire sélectionné !');
-}
 if (!defined('_THE_USER')) {
     define('_THE_USER', "L'utilisateur ");
 }
@@ -4366,12 +4360,6 @@ if (!defined('_MANAGE_MY_SIGNATURES')) {
 if (!defined('_MY_GROUPS')) {
     define('_MY_GROUPS', 'Mes Groupes');
 }
-if (!defined('_PRIMARY_GROUP')) {
-    define('_PRIMARY_GROUP', 'Groupe primaire');
-}
-if (!defined('_SECONDARY_GROUP')) {
-    define('_SECONDARY_GROUP', 'Groupe secondaire');
-}
 if (!defined('_MY_ENTITIES')) {
     define('_MY_ENTITIES', 'Mes Entités');
 }
diff --git a/apps/maarch_entreprise/lang/nl.php b/apps/maarch_entreprise/lang/nl.php
index c04ce5e2a74..14a5c85d579 100755
--- a/apps/maarch_entreprise/lang/nl.php
+++ b/apps/maarch_entreprise/lang/nl.php
@@ -257,7 +257,6 @@ if (!defined('_USER_GROUPS_TITLE')) { define('_USER_GROUPS_TITLE', 'De gebruiker
 if (!defined('_USER_ENTITIES_TITLE')) { define('_USER_ENTITIES_TITLE', 'De gebruiker behoort tot de volgende eenheden');}
 if (!defined('_DELETE_GROUPS')) { define('_DELETE_GROUPS', 'Groep(en) verwijderen');}
 if (!defined('_ADD_TO_GROUP')) { define('_ADD_TO_GROUP', 'Aan een groep toevoegen');}
-if (!defined('_CHOOSE_PRIMARY_GROUP')) { define('_CHOOSE_PRIMARY_GROUP', 'Als primaire groep kiezen');}
 if (!defined('_USER_BELONGS_NO_GROUP')) { define('_USER_BELONGS_NO_GROUP', 'De gebruiker behoort tot geen enkele groep');}
 if (!defined('_USER_BELONGS_NO_ENTITY')) { define('_USER_BELONGS_NO_ENTITY', 'De gebruiker behoort tot geen enkele eenheid');}
 if (!defined('_CHOOSE_ONE_GROUP')) { define('_CHOOSE_ONE_GROUP', 'Kies minstens een groep');}
@@ -391,7 +390,6 @@ if (!defined('_USER_SUSPENSION')) { define('_USER_SUSPENSION', 'Opschorting van
 if (!defined('_USER_UPDATED')) { define('_USER_UPDATED', 'Gewijzigde gebruiker');}
 if (!defined('_USER_UPDATE')) { define('_USER_UPDATE', 'Wijziging van een gebruiker');}
 if (!defined('_USER_ADDED')) { define('_USER_ADDED', 'Nieuwe gebruiker toegevoegd');}
-if (!defined('_NO_PRIMARY_GROUP')) { define('_NO_PRIMARY_GROUP', 'Geen primaire groep geselecteerd!');}
 if (!defined('_THE_USER')) { define('_THE_USER', 'De gebruiker');}
 if (!defined('_USER_ID')) { define('_USER_ID', 'De gebruikersnaam van de gebruiker');}
 if (!defined('_MY_INFO')) { define('_MY_INFO', 'Mijn Profiel');}
@@ -1393,7 +1391,6 @@ if (!defined('_ARCHIVE_TRANSFER_COLL')) { define('_ARCHIVE_TRANSFER_COLL', 'Arch
 if (!defined('_UNREACHABLE_DOCSERVER')) { define('_UNREACHABLE_DOCSERVER', 'Pad docserver onbereikbaar');}
 if (!defined('_MANAGE_MY_SIGNATURES')) { define('_MANAGE_MY_SIGNATURES', 'Mijn handtekeningen beheren');}
 if (!defined('_MY_GROUPS')) { define('_MY_GROUPS', 'Mijn Groepen');}
-if (!defined('_PRIMARY_GROUP')) { define('_PRIMARY_GROUP', 'Primaire groep');}
 if (!defined('_SECONDARY_GROUP')) { define('_SECONDARY_GROUP', 'Secundaire groep');}
 if (!defined('_MY_ENTITIES')) { define('_MY_ENTITIES', 'Mijn Eenheden');}
 if (!defined('_PRIMARY_ENTITY')) { define('_PRIMARY_ENTITY', 'Primaire eenheid');}
diff --git a/core/class/usergroups_controler.php b/core/class/usergroups_controler.php
index c94336b361e..49f943d6255 100755
--- a/core/class/usergroups_controler.php
+++ b/core/class/usergroups_controler.php
@@ -149,7 +149,7 @@ class usergroups_controler extends ObjectControler implements ObjectControlerIF
         $users = array();
         $db = new Database();
         $query = 'select group_id from ' . USERGROUP_CONTENT_TABLE
-               . " where user_id = ? and primary_group = 'Y'";
+               . " where user_id = ?";
         try {
             $stmt = $db->query($query, array($userId));
         } catch (Exception $e){
diff --git a/core/class/users_controler.php b/core/class/users_controler.php
index 4ee4d1ce487..38976a18279 100755
--- a/core/class/users_controler.php
+++ b/core/class/users_controler.php
@@ -175,7 +175,7 @@ class users_controler extends ObjectControler implements ObjectControlerIF
     
     /**
     * Returns in an array all the groups associated with a user (user_id,
-    * group_id, primary_group and role)
+    * group_id and role)
     *
     * @param  $userId string  User identifier
     * @return Array or null
@@ -188,7 +188,7 @@ class users_controler extends ObjectControler implements ObjectControlerIF
         }
         self::$db = new Database();
         $func = new functions();
-        $query = 'select uc.group_id, uc.primary_group, uc.role from '
+        $query = 'select uc.group_id, uc.role from '
                . USERGROUP_CONTENT_TABLE . ' uc, ' . USERGROUPS_TABLE
                . " u where uc.user_id = ? and uc.group_id = u.group_id ";
         try {
@@ -202,7 +202,6 @@ class users_controler extends ObjectControler implements ObjectControlerIF
                 array(
                     'USER_ID' => $userId,
                     'GROUP_ID' => $res->group_id,
-                    'PRIMARY' => $res->primary_group,
                     'ROLE' => $res->role,
                 )
             );
@@ -274,7 +273,6 @@ class users_controler extends ObjectControler implements ObjectControlerIF
                 || $params['manageGroups'] == true
             ) {
                 self::cleanUsergroupContent($user->user_id);
-                self::loadDbUsergroupContent($user->user_id, $groups);
             }
             $core = new core_tools();
 
@@ -433,20 +431,6 @@ class users_controler extends ObjectControler implements ObjectControlerIF
 
         $user->mail = $f->wash($user->mail, 'mail', _MAIL, 'yes', 0, 255);
 
-        if ($user->user_id <> 'superadmin' && (! isset($params['manageGroups']) 
-            || $params['manageGroups'] == true)
-        ) {
-            $primarySet = false;
-            for ($i = 0; $i < count($groups); $i ++) {
-                if ($groups[$i]['PRIMARY'] == 'Y') {
-                    $primarySet = true;
-                    break;
-                }
-            }
-            if ($primarySet == false) {
-                $error .= _PRIMARY_GROUP . ' ' . _MANDATORY . '. ';
-            }
-        }
 
         $_SESSION['service_tag'] = 'user_check';
         $core = new core_tools();
@@ -772,51 +756,6 @@ class users_controler extends ObjectControler implements ObjectControlerIF
         return $control;
     }
 
-    /**
-    * Loads into the usergroup_content table the given data for a given user
-    *
-    * @param  $userId String User identifier
-    * @param  $array Array
-    * @return bool true if the loadng is complete, false otherwise
-    */
-    public function loadDbUsergroupContent($userId, $array)
-    {
-        if (! isset($userId) || empty($userId)) {
-            return false;
-        }
-        if (! isset($array) || count($array) == 0) {
-            return false;
-        }
-        self::$db = new Database();
-        
-        $func = new functions();
-        $ok = true;
-        for ($i = 0; $i < count($array); $i ++) {
-            if ($ok) {
-                $query = 'insert INTO ' . USERGROUP_CONTENT_TABLE
-                       . " (user_id, group_id, primary_group, role) VALUES (?, ?, ?, ?)";
-                try{
-                    $stmt = self::$db->query(
-                        $query,
-                        array(
-                            $userId,
-                            $array[$i]['GROUP_ID'],
-                            $array[$i]['PRIMARY'],
-                            $array[$i]['ROLE'],
-                        )
-                    );
-                    $ok = true;
-                } catch (Exception $e){
-                    $ok = false;
-                }
-            } else {
-                break;
-            }
-        }
-
-        return $ok;
-    }
-    
     public function changePassword($userId, $newPassword)
     {
         if (! isset($userId) || empty($userId) || ! isset($newPassword) 
diff --git a/migration/19.12/1912.sql b/migration/19.12/1912.sql
index ca77af1327e..e3472ddfc5d 100644
--- a/migration/19.12/1912.sql
+++ b/migration/19.12/1912.sql
@@ -367,6 +367,8 @@ DELETE FROM usergroups_services WHERE service_id = 'edit_recipient_outside_proce
 DELETE FROM usergroups_services WHERE service_id = 'update_list_diff_in_details';
 DELETE FROM usergroups_services WHERE service_id = 'edit_recipient_in_process';
 UPDATE listmodels SET title = object_id WHERE title IS NULL;
+UPDATE baskets SET basket_clause = REPLACE(basket_clause, 'coll_id = ''letterbox_coll'' AND', '') WHERE basket_id in ('CopyMailBasket', 'DdeAvisBasket');
+UPDATE baskets SET basket_clause = REPLACE(basket_clause, 'coll_id = ''letterbox_coll'' and', '') WHERE basket_id in ('CopyMailBasket', 'DdeAvisBasket');
 
 
 /* REFACTORING MODIFICATION */
@@ -377,6 +379,7 @@ ALTER TABLE priorities ALTER COLUMN delays SET NOT NULL;
 ALTER TABLE res_letterbox ALTER COLUMN status DROP NOT NULL;
 ALTER TABLE res_letterbox ALTER COLUMN docserver_id DROP NOT NULL;
 
+
 /* REFACTORING SUPPRESSION */
 DO $$ BEGIN
   IF (SELECT count(attname) FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'users') AND attname = 'enabled') THEN
@@ -431,12 +434,10 @@ ALTER TABLE res_letterbox DROP COLUMN IF EXISTS tablename;
 ALTER TABLE res_letterbox DROP COLUMN IF EXISTS validation_date;
 ALTER TABLE listinstance DROP COLUMN IF EXISTS added_by_entity;
 ALTER TABLE listinstance DROP COLUMN IF EXISTS coll_id;
-UPDATE baskets SET basket_clause = REPLACE(basket_clause, 'coll_id = ''letterbox_coll'' AND', '') WHERE basket_id in ('CopyMailBasket', 'DdeAvisBasket');
-UPDATE baskets SET basket_clause = REPLACE(basket_clause, 'coll_id = ''letterbox_coll'' and', '') WHERE basket_id in ('CopyMailBasket', 'DdeAvisBasket');
-
 ALTER TABLE listinstance DROP COLUMN IF EXISTS listinstance_type;
 ALTER TABLE listinstance DROP COLUMN IF EXISTS visible;
 ALTER TABLE listinstance_history_details DROP COLUMN IF EXISTS added_by_entity;
+ALTER TABLE usergroup_content DROP COLUMN IF EXISTS primary_group;
 
 
 /* RE CREATE VIEWS */
diff --git a/modules/basket/class/class_modules_tools_Abstract.php b/modules/basket/class/class_modules_tools_Abstract.php
index 22613a04719..26bc63469a9 100755
--- a/modules/basket/class/class_modules_tools_Abstract.php
+++ b/modules/basket/class/class_modules_tools_Abstract.php
@@ -547,7 +547,7 @@ abstract class basket_Abstract extends Database
             $stmt = $db->query(
                 "select group_id from "
                 . $_SESSION['tablename']['usergroup_content']
-                . " where primary_group = 'Y' and user_id = ?",
+                . " where user_id = ?",
                 array($userId)
             );
             $res = $stmt->fetchObject();
diff --git a/modules/sendmail/Controllers/ReceiveMessageExchangeController.php b/modules/sendmail/Controllers/ReceiveMessageExchangeController.php
index bace7ed15bf..b33f7b4b484 100755
--- a/modules/sendmail/Controllers/ReceiveMessageExchangeController.php
+++ b/modules/sendmail/Controllers/ReceiveMessageExchangeController.php
@@ -120,12 +120,7 @@ class ReceiveMessageExchangeController
             foreach ($userBaskets as $value) {
                 if ($value['basket_id'] == $aDefaultConfig['basketRedirection_afterUpload'][0]) {
                     $userGroups = UserModel::getGroupsByLogin(['login' => $GLOBALS['userId']]);
-                    foreach ($userGroups as $userGroupValue) {
-                        if ($userGroupValue['primary_group'] == 'Y') {
-                            $userPrimaryGroup = $userGroupValue['group_id'];
-                            break;
-                        }
-                    }
+                    $userPrimaryGroup = $userGroups[0]['group_id'];
                     $defaultAction = BasketModel::getDefaultActionIdByBasketId(['basketId' => $value['basket_id'], 'groupId' => $userPrimaryGroup]);
                     $basketRedirection = 'index.php?page=view_baskets&module=basket&baskets=' . $value['basket_id'] . '&resId=' . $resLetterboxReturn . '&defaultAction=' . $defaultAction;
                     break;
diff --git a/sql/data_en.sql b/sql/data_en.sql
index bd97ee4eb96..54ab9c2656a 100644
--- a/sql/data_en.sql
+++ b/sql/data_en.sql
@@ -396,54 +396,55 @@ select setval('users_id_seq', (select max(id)+1 from users), false);
 -- Create USERGROUP_CONTENT
 TRUNCATE TABLE usergroup_content;
 DELETE FROM usergroup_content WHERE user_id = 'rrenaud';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('rrenaud', 'RESPONSABLE', 'Y','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('rrenaud', 'DIRECTEUR', 'N','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('rrenaud', 'RESPONSABLE', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('rrenaud', 'DIRECTEUR', '');
 DELETE FROM usergroup_content WHERE user_id = 'ccordy';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ccordy', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ccordy', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ssissoko';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ssissoko', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ssissoko', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'nnataly';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('nnataly', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('nnataly', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ddur';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ddur', 'ELU', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ddur', 'ELU', '');
 DELETE FROM usergroup_content WHERE user_id = 'jjane';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('jjane', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('jjane', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'eerina';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('eerina', 'RESPONSABLE', 'Y','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('eerina', 'DIRECTEUR', 'N','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('eerina', 'RESPONSABLE', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('eerina', 'DIRECTEUR', '');
 DELETE FROM usergroup_content WHERE user_id = 'kkaar';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('kkaar', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('kkaar', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'bboule';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('bboule', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('bboule', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ppetit';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ppetit', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ppetit', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'aackermann';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('aackermann', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('aackermann', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ppruvost';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ppruvost', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ppruvost', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ttong';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ttong', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ttong', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'sstar';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('sstar', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('sstar', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'ssaporta';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ssaporta', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ssaporta', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ccharles';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ccharles', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ccharles', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'mmanfred';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('mmanfred', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('mmanfred', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'ddaull';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ddaull', 'COURRIER', 'N','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ddaull', 'RESP_COURRIER', 'N','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ddaull', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ddaull', 'COURRIER', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ddaull', 'RESP_COURRIER', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ddaull', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'bbain';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('bbain', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('bbain', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'jjonasz';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('jjonasz', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('jjonasz', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'bblier';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('bblier', 'COURRIER', 'Y','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('bblier', 'ADMINISTRATEUR_N1', 'N','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('bblier', 'COURRIER', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('bblier', 'ADMINISTRATEUR_N1', '');
 DELETE FROM usergroup_content WHERE user_id = 'ggrand';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ggrand', 'ARCHIVISTE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ggrand', 'ARCHIVISTE', '');
+
 
 -- Create ENTITIES and LISTMODELS
 TRUNCATE TABLE entities;
@@ -776,7 +777,7 @@ INSERT INTO users (user_id, password, firstname, lastname, phone, mail, custom_t
 DELETE FROM users WHERE user_id = 'cchaplin';
 INSERT INTO users (user_id, password, firstname, lastname, mail, enabled, change_password, status, loginmode) VALUES ('cchaplin', '$2y$10$C.QSslBKD3yNMfRPuZfcaubFwPKiCkqqOUyAdOr5FSGKPaePwuEjG', 'Charlie', 'CHAPLIN', 'info@maarch.org', 'Y', 'N', 'OK', 'restMode');
 DELETE FROM usergroup_content WHERE user_id = 'cchaplin';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('cchaplin', 'MAARCHTOGEC', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('cchaplin', 'MAARCHTOGEC','');
 
 ------------
 -- CONTACTS
diff --git a/sql/data_fr.sql b/sql/data_fr.sql
index 01a53ac667c..f307abe8828 100755
--- a/sql/data_fr.sql
+++ b/sql/data_fr.sql
@@ -459,54 +459,54 @@ select setval('users_id_seq', (select max(id)+1 from users), false);
 -- Create USERGROUP_CONTENT
 TRUNCATE TABLE usergroup_content;
 DELETE FROM usergroup_content WHERE user_id = 'rrenaud';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('rrenaud', 'RESPONSABLE', 'Y','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('rrenaud', 'DIRECTEUR', 'N','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('rrenaud', 'RESPONSABLE', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('rrenaud', 'DIRECTEUR', '');
 DELETE FROM usergroup_content WHERE user_id = 'ccordy';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ccordy', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ccordy', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ssissoko';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ssissoko', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ssissoko', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'nnataly';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('nnataly', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('nnataly', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ddur';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ddur', 'ELU', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ddur', 'ELU', '');
 DELETE FROM usergroup_content WHERE user_id = 'jjane';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('jjane', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('jjane', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'eerina';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('eerina', 'RESPONSABLE', 'Y','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('eerina', 'DIRECTEUR', 'N','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('eerina', 'RESPONSABLE', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('eerina', 'DIRECTEUR', '');
 DELETE FROM usergroup_content WHERE user_id = 'kkaar';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('kkaar', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('kkaar', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'bboule';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('bboule', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('bboule', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ppetit';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ppetit', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ppetit', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'aackermann';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('aackermann', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('aackermann', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ppruvost';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ppruvost', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ppruvost', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ttong';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ttong', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ttong', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'sstar';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('sstar', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('sstar', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'ssaporta';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ssaporta', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ssaporta', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'ccharles';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ccharles', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ccharles', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'mmanfred';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('mmanfred', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('mmanfred', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'ddaull';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ddaull', 'COURRIER', 'N','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ddaull', 'RESP_COURRIER', 'N','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ddaull', 'RESPONSABLE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ddaull', 'COURRIER', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ddaull', 'RESP_COURRIER', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ddaull', 'RESPONSABLE', '');
 DELETE FROM usergroup_content WHERE user_id = 'bbain';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('bbain', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('bbain', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'jjonasz';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('jjonasz', 'AGENT', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('jjonasz', 'AGENT', '');
 DELETE FROM usergroup_content WHERE user_id = 'bblier';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('bblier', 'COURRIER', 'Y','');
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('bblier', 'ADMINISTRATEUR_N1', 'N','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('bblier', 'COURRIER', '');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('bblier', 'ADMINISTRATEUR_N1', '');
 DELETE FROM usergroup_content WHERE user_id = 'ggrand';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('ggrand', 'ARCHIVISTE', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('ggrand', 'ARCHIVISTE', '');
 
 -- Create ENTITIES and LISTMODELS
 TRUNCATE TABLE entities;
@@ -857,7 +857,7 @@ INSERT INTO users (user_id, password, firstname, lastname, phone, mail, custom_t
 DELETE FROM users WHERE user_id = 'cchaplin';
 INSERT INTO users (user_id, password, firstname, lastname, mail, change_password, status, loginmode) VALUES ('cchaplin', '$2y$10$C.QSslBKD3yNMfRPuZfcaubFwPKiCkqqOUyAdOr5FSGKPaePwuEjG', 'Charlie', 'CHAPLIN', 'support@maarch.fr', 'N', 'OK', 'restMode');
 DELETE FROM usergroup_content WHERE user_id = 'cchaplin';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('cchaplin', 'MAARCHTOGEC', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('cchaplin', 'MAARCHTOGEC', '');
 
 ------------
 -- CONTACTS
diff --git a/sql/m2m_contacts_samples.sql b/sql/m2m_contacts_samples.sql
index d0a4edde80c..c3b10ca44c9 100644
--- a/sql/m2m_contacts_samples.sql
+++ b/sql/m2m_contacts_samples.sql
@@ -9,7 +9,7 @@ INSERT INTO security (group_id, coll_id, where_clause, maarch_comment) VALUES ('
 DELETE FROM users WHERE user_id = 'cchaplin';
 INSERT INTO users (user_id, password, firstname, lastname, mail, enabled, change_password, status, loginmode) VALUES ('cchaplin', '$2y$10$C.QSslBKD3yNMfRPuZfcaubFwPKiCkqqOUyAdOr5FSGKPaePwuEjG', 'Jean', 'WEBSERVICE', 'info@maarch.org', 'Y', 'N', 'OK', 'restMode');
 DELETE FROM usergroup_content WHERE user_id = 'cchaplin';
-INSERT INTO usergroup_content (user_id, group_id, primary_group, role) VALUES ('cchaplin', 'MAARCHTOGEC', 'Y','');
+INSERT INTO usergroup_content (user_id, group_id, role) VALUES ('cchaplin', 'MAARCHTOGEC', '');
 
 DELETE FROM contacts_v2 where contact_id >= 1000000;
 DELETE FROM contact_addresses where id >= 1000000;
diff --git a/sql/structure.sql b/sql/structure.sql
index 80165ee1894..43666412024 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -179,7 +179,6 @@ CREATE TABLE usergroup_content
 (
   user_id character varying(128) NOT NULL,
   group_id character varying(32) NOT NULL,
-  primary_group character(1) NOT NULL,
   "role" character varying(255) DEFAULT NULL::character varying,
   CONSTRAINT usergroup_content_pkey PRIMARY KEY (user_id, group_id)
 )
diff --git a/src/app/user/models/UserModelAbstract.php b/src/app/user/models/UserModelAbstract.php
index 9883d2ed2ad..09b85b6b68e 100755
--- a/src/app/user/models/UserModelAbstract.php
+++ b/src/app/user/models/UserModelAbstract.php
@@ -422,7 +422,7 @@ abstract class UserModelAbstract
         ValidatorModel::stringType($aArgs, ['login']);
 
         $aGroups = DatabaseModel::select([
-            'select'    => ['usergroups.id', 'usergroups.can_index', 'usergroup_content.group_id', 'usergroups.group_desc', 'usergroup_content.primary_group', 'usergroup_content.role', 'security.maarch_comment', 'security.where_clause'],
+            'select'    => ['usergroups.id', 'usergroups.can_index', 'usergroup_content.group_id', 'usergroups.group_desc', 'usergroup_content.role', 'security.maarch_comment', 'security.where_clause'],
             'table'     => ['usergroup_content, usergroups, security'],
             'where'     => ['usergroup_content.group_id = usergroups.group_id', 'usergroup_content.user_id = ?','usergroups.group_id = security.group_id'],
             'data'      => [$aArgs['login']]
@@ -494,8 +494,7 @@ abstract class UserModelAbstract
             'columnsValues' => [
                 'user_id'       => $user['user_id'],
                 'group_id'      => $aArgs['groupId'],
-                'role'          => $aArgs['role'],
-                'primary_group' => 'Y'
+                'role'          => $aArgs['role']
             ]
         ]);
 
-- 
GitLab