diff --git a/core/module/user/ressource/template.csv b/core/module/user/ressource/template.csv index 3c528550..aaecffe8 100755 --- a/core/module/user/ressource/template.csv +++ b/core/module/user/ressource/template.csv @@ -1,5 +1,5 @@ -id;nom;prenom;email;groupe -jm1;Membre1;Jean;jean.membre1@email.fr;1 -am2;Membre2;Albert;albert.membre2@email.fr;1 -jrediteur;Editeur;Robert;robert.editeur@email.fr;2 -padmin;Dupuis;Admin;paul.admin@email.fr;3 +id;nom;prenom;email;groupe;profil;passe;tags +jm1;Membre1;Jean;jean.membre1@email.fr;1;1;jEan05;"adhérent" +am2;Membre2;Albert;albert.membre2@email.fr;1;1;alBertAG;"adhérent" +jrediteur;Editeur;Robert;robert.editeur@email.fr;2;1;roBert54;"trésorier" +padmin;Dupuis;Admin;paul.admin@email.fr;3;0;paul32Mirabel32;"président" \ No newline at end of file diff --git a/core/module/user/user.php b/core/module/user/user.php index ca4cafb3..f213e5f6 100644 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -75,8 +75,8 @@ class user extends common public static $alphabet = []; - public static $courseGroups = [ - 'all' => 'Tout' + public static $usersGroups = [ + 'all' => 'Tous' ]; /** @@ -133,6 +133,7 @@ class user extends common 'accessTimer' => null, 'accessCsrf' => null, 'language' => $this->getInput('userEditLanguage', helper::FILTER_STRING_SHORT), + 'tags' => '' ] ]); @@ -343,6 +344,7 @@ class user extends common 'accessCsrf' => $this->getData(['user', $this->getUrl(2), 'accessCsrf']), 'files' => $this->getInput('userEditFiles', helper::FILTER_BOOLEAN), 'language' => $this->getInput('userEditLanguage', helper::FILTER_STRING_SHORT), + 'tags' => $this->getInput('userEditTags', helper::FILTER_STRING_SHORT), ] ]); // Redirection spécifique si l'utilisateur change son mot de passe @@ -447,20 +449,22 @@ class user extends common public function index() { // Liste des groupes et des profils - $courseGroups = $this->getData(['profil']); - foreach ($courseGroups as $groupId => $groupValue) { + $usersGroups = $this->getData(['profil']); + foreach ($usersGroups as $groupId => $groupValue) { switch ($groupId) { case "-1": case "0": break; case "3": - self::$courseGroups['30'] = 'Administrateur'; + self::$usersGroups['30'] = 'Administrateur'; + $profils['30'] = 0; break; case "1": case "2": foreach ($groupValue as $profilId => $profilValue) { if ($profilId) { - self::$courseGroups[$groupId . $profilId] = sprintf(helper::translate('Groupe %s - Profil %s'), self::$groupPublics[$groupId], $profilValue['name']); + self::$usersGroups[$groupId . $profilId] = sprintf(helper::translate('Groupe %s - Profil %s'), self::$groupPublics[$groupId], $profilValue['name']); + $profils[$groupId . $profilId] = 0; } } } @@ -470,13 +474,17 @@ class user extends common self::$alphabet = range('A', 'Z'); $alphabet = range('A', 'Z'); self::$alphabet = array_combine($alphabet, self::$alphabet); - self::$alphabet = array_merge(['all' => 'Tout'], self::$alphabet); + self::$alphabet = array_merge(['all' => 'Toute'], self::$alphabet); // Liste des membres $userIdsLastNames = helper::arrayColumn($this->getData(['user']), 'lastname'); ksort($userIdsLastNames); foreach ($userIdsLastNames as $userId => $userLastNames) { if ($this->getData(['user', $userId, 'group'])) { + + // Compte les rôles + $profils[$this->getData(['user', $userId, 'group']) . $this->getData(['user', $userId, 'profil'])]++; + // Filtres if ($this->isPost()) { // Groupe et profils @@ -503,6 +511,8 @@ class user extends common continue; } + + // Formatage de la liste self::$users[] = [ $userId, @@ -511,6 +521,7 @@ class user extends common empty($this->getData(['profil', $this->getData(['user', $userId, 'group']), $this->getData(['user', $userId, 'profil']), 'name'])) ? helper::translate(self::$groups[(int) $this->getData(['user', $userId, 'group'])]) : $this->getData(['profil', $this->getData(['user', $userId, 'group']), $this->getData(['user', $userId, 'profil']), 'name']), + $this->getData(['user', $userId, 'tags']), template::button('userEdit' . $userId, [ 'href' => helper::baseUrl() . 'user/edit/' . $userId, 'value' => template::ico('pencil'), @@ -523,6 +534,16 @@ class user extends common 'help' => 'Supprimer' ]) ]; + + } + } + + // Ajoute les effectifs aux profils du sélecteur + foreach (self::$usersGroups as $groupId => $groupValue) { + if ($groupId === 'all') { + self::$usersGroups['all'] = self::$usersGroups['all'] . ' (' . array_sum($profils) . ')'; + } else { + self::$usersGroups[$groupId] = self::$usersGroups[$groupId] . ' (' . $profils[$groupId] . ')'; } } @@ -702,10 +723,16 @@ class user extends common self::$sharePath = array_merge(['./site/file/source/' => 'Tous les dossiers'], self::$sharePath); self::$sharePath = array_merge([null => 'Aucun dossier'], self::$sharePath); + // Chemin vers les dossiers du gestionnaire de fichier + self::$sharePath = $this->getSubdirectories('./site/file/source'); + self::$sharePath = array_flip(self::$sharePath); + self::$sharePath = array_merge(['./site/file/source/' => 'Tous les dossiers'], self::$sharePath); + self::$sharePath = array_merge([null => 'Aucun dossier'], self::$sharePath); + // Liste des modules installés self::$listModules = helper::getModules(); self::$listModules = array_keys(self::$listModules); - + // Charge les dialogues du module pour afficher les traductions foreach (self::$listModules as $moduleId) { if ( @@ -868,7 +895,7 @@ class user extends common // Liste des modules installés self::$listModules = helper::getModules(); self::$listModules = array_keys(self::$listModules); - + // Charge les dialogues du module pour afficher les traductions foreach (self::$listModules as $moduleId) { if ( @@ -1177,17 +1204,22 @@ class user extends common and array_key_exists('prenom', $item) and array_key_exists('nom', $item) and array_key_exists('groupe', $item) + and array_key_exists('profil', $item) and array_key_exists('email', $item) and array_key_exists('passe', $item) - and $item['nom'] - and $item['prenom'] - and $item['id'] - and $item['email'] - and $item['groupe'] - and $item['passe'] + and array_key_exists('tags', $item) + and isset($item['id']) + and isset($item['nom']) + and isset($item['prenom']) + and isset($item['email']) + and isset($item['groupe']) + and isset($item['profil']) + and isset($item['passe']) + and isset($item['tags']) ) { // Validation du groupe $item['groupe'] = (int) $item['groupe']; + $item['profil'] = (int) $item['profil']; $item['groupe'] = ($item['groupe'] >= self::GROUP_BANNED and $item['groupe'] <= self::GROUP_ADMIN) ? $item['groupe'] : 1; // L'utilisateur existe @@ -1200,8 +1232,12 @@ class user extends common $item['nom'], $item['prenom'], self::$groups[$item['groupe']], + ($this->getData(['profil', $item['groupe'], $item['profil'], 'name']) !== null ) + ? $this->getData(['profil', $item['groupe'], $item['profil'], 'name']) + : $item['profil'], $item['prenom'], helper::filter($item['email'], helper::FILTER_MAIL), + $item['tags'], $item['notification'] ]; // L'utilisateur n'existe pas @@ -1216,6 +1252,7 @@ class user extends common 'firstname' => $item['prenom'], 'forgot' => 0, 'group' => $item['groupe'], + 'profil' => $item['profil'], 'lastname' => $item['nom'], 'mail' => $item['email'], 'pseudo' => $item['prenom'], @@ -1227,7 +1264,8 @@ class user extends common "connectTimeout" => null, "accessUrl" => null, "accessTimer" => null, - "accessCsrf" => null + "accessCsrf" => null, + 'tags' => $item['tags'] ] ]); // Icône de notification @@ -1253,17 +1291,23 @@ class user extends common } } // Création du tableau de confirmation + var_dump( $item['profil']); self::$users[] = [ $userId, $item['nom'], $item['prenom'], self::$groups[$item['groupe']], + ($this->getData(['profil', $item['groupe'], $item['profil'], 'name']) !== null ) + ? $this->getData(['profil', $item['groupe'], $item['profil'], 'name']) + : $item['profil'], $item['prenom'], $item['email'], + $item['tags'], $item['notification'] ]; } } + } if (empty(self::$users)) { $notification = helper::translate('Rien à importer, erreur de format ou fichier incorrect'); diff --git a/core/module/user/view/add/add.php b/core/module/user/view/add/add.php index 24245783..797946f8 100644 --- a/core/module/user/view/add/add.php +++ b/core/module/user/view/add/add.php @@ -46,13 +46,28 @@ ]); ?> - 'off', - 'label' => 'Adresse électronique' - ]); ?> - 'Langues' - ]); ?> +