Merge pull request #10078 from annando/addcontact
Improved checks when adding contacts
This commit is contained in:
commit
1ece34459f
|
@ -229,7 +229,7 @@ function settings_post(App $a)
|
||||||
notice(DI::l10n()->t('Contact CSV file upload error'));
|
notice(DI::l10n()->t('Contact CSV file upload error'));
|
||||||
} else {
|
} else {
|
||||||
$csvArray = array_map('str_getcsv', file($_FILES['importcontact-filename']['tmp_name']));
|
$csvArray = array_map('str_getcsv', file($_FILES['importcontact-filename']['tmp_name']));
|
||||||
Logger::info('Import started', ['lines' => count($csvArray)]);
|
Logger::notice('Import started', ['lines' => count($csvArray)]);
|
||||||
// import contacts
|
// import contacts
|
||||||
foreach ($csvArray as $csvRow) {
|
foreach ($csvArray as $csvRow) {
|
||||||
// The 1st row may, or may not contain the headers of the table
|
// The 1st row may, or may not contain the headers of the table
|
||||||
|
@ -237,18 +237,20 @@ function settings_post(App $a)
|
||||||
// or the handle of the account, therefore we check for either
|
// or the handle of the account, therefore we check for either
|
||||||
// "http" or "@" to be present in the string.
|
// "http" or "@" to be present in the string.
|
||||||
// All other fields from the row will be ignored
|
// All other fields from the row will be ignored
|
||||||
if ((strpos($csvRow[0],'@') !== false) || (strpos($csvRow[0],'http') !== false)) {
|
if ((strpos($csvRow[0],'@') !== false) || in_array(parse_url($csvRow[0], PHP_URL_SCHEME), ['http', 'https'])) {
|
||||||
Worker::add(PRIORITY_LOW, 'AddContact', $_SESSION['uid'], $csvRow[0]);
|
Worker::add(PRIORITY_LOW, 'AddContact', $_SESSION['uid'], $csvRow[0]);
|
||||||
|
} else {
|
||||||
|
Logger::notice('Invalid account', ['url' => $csvRow[0]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Logger::info('Import done');
|
Logger::notice('Import done');
|
||||||
|
|
||||||
info(DI::l10n()->t('Importing Contacts done'));
|
info(DI::l10n()->t('Importing Contacts done'));
|
||||||
// delete temp file
|
// delete temp file
|
||||||
unlink($_FILES['importcontact-filename']['tmp_name']);
|
unlink($_FILES['importcontact-filename']['tmp_name']);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Logger::info('Import triggered, but no import file was found.');
|
Logger::notice('Import triggered, but no import file was found.');
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -2821,6 +2821,9 @@ class Contact
|
||||||
$count = 0;
|
$count = 0;
|
||||||
|
|
||||||
foreach ($urls as $url) {
|
foreach ($urls as $url) {
|
||||||
|
if (empty($url) || !is_string($url)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$contact = self::getByURL($url, false, ['id', 'updated']);
|
$contact = self::getByURL($url, false, ['id', 'updated']);
|
||||||
if (empty($contact['id'])) {
|
if (empty($contact['id'])) {
|
||||||
Worker::add(PRIORITY_LOW, 'AddContact', 0, $url);
|
Worker::add(PRIORITY_LOW, 'AddContact', 0, $url);
|
||||||
|
|
Loading…
Reference in a new issue