diff --git a/core/module/user/user.php b/core/module/user/user.php
index 74e12281..dfa1bee9 100644
--- a/core/module/user/user.php
+++ b/core/module/user/user.php
@@ -581,79 +581,90 @@ class user extends common {
$file = $this->getInput('userImportCSVFile',helper::FILTER_STRING_SHORT, true);
$filePath = self::FILE_DIR . 'source/' . $file;
if ($file AND file_exists($filePath)) {
+ // Analyse et extraction du CSV
$rows = array_map(function($row) { return str_getcsv($row, $this->getInput('userImportSeparator') ); }, file($filePath));
$header = array_shift($rows);
$csv = array();
foreach($rows as $row) {
$csv[] = array_combine($header, $row);
}
- // Stockage des données
+ // Traitement des données
foreach($csv as $item ) {
-
- // N'insére que les utilisateurs dont l'id n'existe pas
- // Vérifier la présence des champs
+ // Données valides
if( array_key_exists('id', $item)
- AND array_key_exists('prenom',$item)
- AND array_key_exists('nom',$item)
- AND array_key_exists('groupe',$item)
- AND array_key_exists('email',$item)
- AND !$this->getData(['user',helper::filter($item['id'] , helper::FILTER_ID)])
- )
- {
- // Nettoyage de l'identifiant
- $userId = helper::filter($item['id'] , helper::FILTER_ID);
- // Enregistre le user
- $this->setData([
- 'user',
- $userId, [
- 'firstname' => $item['prenom'],
- 'forgot' => 0,
- 'group' => (int) $item['groupe'],
- 'lastname' => $item['nom'],
- 'mail' => $item['email'],
- 'pseudo' => $item['prenom'],
- 'signature' => 1, // Pseudo
- 'password' => uniqid(), // A modifier à la première connexion
- "connectFail" => null,
- "connectTimeout" => null,
- "accessUrl" => null,
- "accessTimer" => null,
- "accessCsrf" => null
- ]]);
-
- // Icône de notification
- $item['notification'] = template::ico('check');
- // Envoi du mail
- if ($this->getInput('userImportNotification',helper::FILTER_BOOLEAN) === true) {
- $sent = $this->sendMail(
+ AND array_key_exists('prenom',$item)
+ AND array_key_exists('nom',$item)
+ AND array_key_exists('groupe',$item)
+ AND array_key_exists('email',$item) ) {
+ // L'utilisateur existe
+ if ( $this->getData(['user',helper::filter($item['id'] , helper::FILTER_ID)]))
+ {
+ // Notification du doublon
+ $item['notification'] = template::ico('cancel');
+ // Création du tableau de confirmation
+ self::$users[] = [
+ helper::filter($item['id'] , helper::FILTER_ID),
+ $item['nom'],
+ $item['prenom'],
+ self::$groups[$item['groupe']],
+ $item['prenom'],
$item['email'],
- 'Compte créé sur ' . $this->getData(['config', 'title']),
- 'Bonjour ' . $item['prenom'] . ' ' . $item['nom'] . ',
' .
- 'Un administrateur vous a créé un compte sur le site ' . $this->getData(['config', 'title']) . '. Vous trouverez ci-dessous les détails de votre compte.
' .
- 'Identifiant du compte : ' . $userId . '
' .
- 'Un mot de passe provisoire vous été attribué, à la première connexion cliquez sur Mot de passe Oublié.'
- );
- if ($sent === true) {
- // Mail envoyé changement de l'icône
- $item['notification'] = template::ico('comment') ;
- }
+ $item['notification']
+ ];
+ // L'utilisateur n'existe pas
+ } else {
+ // Nettoyage de l'identifiant
+ $userId = helper::filter($item['id'] , helper::FILTER_ID);
+ // Enregistre le user
+ $this->setData([
+ 'user',
+ $userId, [
+ 'firstname' => $item['prenom'],
+ 'forgot' => 0,
+ 'group' => (int) $item['groupe'],
+ 'lastname' => $item['nom'],
+ 'mail' => $item['email'],
+ 'pseudo' => $item['prenom'],
+ 'signature' => 1, // Pseudo
+ 'password' => uniqid(), // A modifier à la première connexion
+ "connectFail" => null,
+ "connectTimeout" => null,
+ "accessUrl" => null,
+ "accessTimer" => null,
+ "accessCsrf" => null
+ ]]);
+ // Icône de notification
+ $item['notification'] = template::ico('check');
+ // Création du tableau de confirmation
+ self::$users[] = [
+ $userId,
+ $item['nom'],
+ $item['prenom'],
+ self::$groups[$item['groupe']],
+ $item['prenom'],
+ $item['email'],
+ $item['notification']
+ ];
+ // Envoi du mail
+ if ($this->getInput('userImportNotification',helper::FILTER_BOOLEAN) === true) {
+ $sent = $this->sendMail(
+ $item['email'],
+ 'Compte créé sur ' . $this->getData(['config', 'title']),
+ 'Bonjour ' . $item['prenom'] . ' ' . $item['nom'] . ',
' .
+ 'Un administrateur vous a créé un compte sur le site ' . $this->getData(['config', 'title']) . '. Vous trouverez ci-dessous les détails de votre compte.
' .
+ 'Identifiant du compte : ' . $userId . '
' .
+ 'Un mot de passe provisoire vous été attribué, à la première connexion cliquez sur Mot de passe Oublié.'
+ );
+ if ($sent === true) {
+ // Mail envoyé changement de l'icône
+ $item['notification'] = template::ico('comment') ;
+ }
+ }
}
- } else {
- $item['notification'] = template::ico('cancel');
}
- // Création du tableau de confirmation
- self::$users[] = [
- $userId,
- $item['nom'],
- $item['prenom'],
- self::$groups[$item['groupe']],
- $item['prenom'],
- $item['email'],
- $item['notification']
- ];
}
if (empty(self::$users)) {
- $notification = 'Rien à importer' ;
+ $notification = 'Rien à importer, erreur de format ou fichier incorrect' ;
$success = false;
} else {
$notification = 'Importation effectuée' ;
@@ -673,4 +684,4 @@ class user extends common {
]);
}
-}
+}
\ No newline at end of file