Erreur de notification

This commit is contained in:
Fred Tempez 2020-10-08 21:16:28 +02:00
parent 96d2fc2e0d
commit b9bc252979

View File

@ -581,79 +581,90 @@ class user extends common {
$file = $this->getInput('userImportCSVFile',helper::FILTER_STRING_SHORT, true); $file = $this->getInput('userImportCSVFile',helper::FILTER_STRING_SHORT, true);
$filePath = self::FILE_DIR . 'source/' . $file; $filePath = self::FILE_DIR . 'source/' . $file;
if ($file AND file_exists($filePath)) { 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)); $rows = array_map(function($row) { return str_getcsv($row, $this->getInput('userImportSeparator') ); }, file($filePath));
$header = array_shift($rows); $header = array_shift($rows);
$csv = array(); $csv = array();
foreach($rows as $row) { foreach($rows as $row) {
$csv[] = array_combine($header, $row); $csv[] = array_combine($header, $row);
} }
// Stockage des données // Traitement des données
foreach($csv as $item ) { foreach($csv as $item ) {
// Données valides
// N'insére que les utilisateurs dont l'id n'existe pas
// Vérifier la présence des champs
if( array_key_exists('id', $item) if( array_key_exists('id', $item)
AND array_key_exists('prenom',$item) AND array_key_exists('prenom',$item)
AND array_key_exists('nom',$item) AND array_key_exists('nom',$item)
AND array_key_exists('groupe',$item) AND array_key_exists('groupe',$item)
AND array_key_exists('email',$item) AND array_key_exists('email',$item) ) {
AND !$this->getData(['user',helper::filter($item['id'] , helper::FILTER_ID)]) // L'utilisateur existe
) if ( $this->getData(['user',helper::filter($item['id'] , helper::FILTER_ID)]))
{ {
// Nettoyage de l'identifiant // Notification du doublon
$userId = helper::filter($item['id'] , helper::FILTER_ID); $item['notification'] = template::ico('cancel');
// Enregistre le user // Création du tableau de confirmation
$this->setData([ self::$users[] = [
'user', helper::filter($item['id'] , helper::FILTER_ID),
$userId, [ $item['nom'],
'firstname' => $item['prenom'], $item['prenom'],
'forgot' => 0, self::$groups[$item['groupe']],
'group' => (int) $item['groupe'], $item['prenom'],
'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(
$item['email'], $item['email'],
'Compte créé sur ' . $this->getData(['config', 'title']), $item['notification']
'Bonjour <strong>' . $item['prenom'] . ' ' . $item['nom'] . '</strong>,<br><br>' . ];
'Un administrateur vous a créé un compte sur le site ' . $this->getData(['config', 'title']) . '. Vous trouverez ci-dessous les détails de votre compte.<br><br>' . // L'utilisateur n'existe pas
'<strong>Identifiant du compte :</strong> ' . $userId . '<br>' . } else {
'<small>Un mot de passe provisoire vous été attribué, à la première connexion cliquez sur Mot de passe Oublié.</small>' // Nettoyage de l'identifiant
); $userId = helper::filter($item['id'] , helper::FILTER_ID);
if ($sent === true) { // Enregistre le user
// Mail envoyé changement de l'icône $this->setData([
$item['notification'] = template::ico('comment') ; '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 <strong>' . $item['prenom'] . ' ' . $item['nom'] . '</strong>,<br><br>' .
'Un administrateur vous a créé un compte sur le site ' . $this->getData(['config', 'title']) . '. Vous trouverez ci-dessous les détails de votre compte.<br><br>' .
'<strong>Identifiant du compte :</strong> ' . $userId . '<br>' .
'<small>Un mot de passe provisoire vous été attribué, à la première connexion cliquez sur Mot de passe Oublié.</small>'
);
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)) { if (empty(self::$users)) {
$notification = 'Rien à importer' ; $notification = 'Rien à importer, erreur de format ou fichier incorrect' ;
$success = false; $success = false;
} else { } else {
$notification = 'Importation effectuée' ; $notification = 'Importation effectuée' ;
@ -673,4 +684,4 @@ class user extends common {
]); ]);
} }
} }