diff --git a/core/module/user/user.php b/core/module/user/user.php
index 4b0bb545..68ece578 100644
--- a/core/module/user/user.php
+++ b/core/module/user/user.php
@@ -562,7 +562,7 @@ class user extends common {
// Lecture du CSV et construction du tableau
$file = $this->getInput('userImportCSVFile',helper::FILTER_STRING_SHORT, true);
$filePath = self::FILE_DIR . 'source/' . $file;
- if (file_exists ($filePath)) {
+ if ($file AND file_exists($filePath)) {
$rows = array_map(function($row) { return str_getcsv($row, $this->getInput('userImportSeparator') ); }, file($filePath));
$header = array_shift($rows);
$csv = array();
@@ -571,17 +571,18 @@ class user extends common {
}
// Stockage des données
foreach($csv as $item ) {
- // Nettoyage de l'identifiant
- $userId = helper::filter($item['id'] , helper::FILTER_ID);
// N'insére que les utilisateurs dont l'id n'existe pas
// Vérifier la présence des champs
- if( !$this->getData(['user', $userId])
- AND $item['prenom']
- AND $item['nom']
- AND $item['groupe']
- AND $item['email']
- AND $userId )
+ 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', $item['id']])
+ )
{
+ // Nettoyage de l'identifiant
+ $userId = helper::filter($item['id'] , helper::FILTER_ID);
// Enregistre le user
$this->setData([
'user',
@@ -600,35 +601,36 @@ class user extends common {
"accessTimer" => null,
"accessCsrf" => null
]]);
- $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é.'
+ );
+ $item['notification'] = $sent === true ? 'Mail' : template::ico('check') ;
+ } else {
+ $item['notification'] = template::ico('check');
+ }
} 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']
- ];
}
$notification = 'importation effectuée' ;
$success = true;
- // Envoi du mail
- if ($this->getInput('userImportNotification',self::FILTER_BOOLEAN)) {
- $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é.'
- );
- }
} else {
$notification = 'Erreur de lecture, vérifiez les permissions';
$success = false;