mirror of
https://github.com/bitwarden/browser
synced 2024-12-25 09:32:06 +01:00
catch bad data on all importers
This commit is contained in:
parent
a9f2ef7c10
commit
7c2d5448e8
@ -190,8 +190,7 @@
|
||||
function parseData(data) {
|
||||
var folders = [],
|
||||
sites = [],
|
||||
siteRelationships = [],
|
||||
badDataSites = 0;
|
||||
siteRelationships = [];
|
||||
|
||||
angular.forEach(data, function (value, key) {
|
||||
var folderIndex = folders.length,
|
||||
@ -209,10 +208,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
if ((!value.name || value.name === '') && (!value.password || value.password === '')) {
|
||||
badDataSites++;
|
||||
}
|
||||
|
||||
sites.push({
|
||||
favorite: value.fav === '1',
|
||||
uri: value.url && value.url !== '' ? trimUri(value.url) : null,
|
||||
@ -237,12 +232,7 @@
|
||||
}
|
||||
});
|
||||
|
||||
if (badDataSites && badDataSites > (data.length / 2)) {
|
||||
error('CSV data is not formatted correctly from LastPass. Please check your import file and try again.');
|
||||
}
|
||||
else {
|
||||
success(folders, sites, siteRelationships);
|
||||
}
|
||||
success(folders, sites, siteRelationships);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,10 +13,17 @@
|
||||
|
||||
function importSuccess(folders, sites, folderRelationships) {
|
||||
if (!folders.length && !sites.length) {
|
||||
$uibModalInstance.dismiss('cancel');
|
||||
toastr.error('Nothing was imported.');
|
||||
importError('Nothing was imported.');
|
||||
return;
|
||||
}
|
||||
else if (sites.length) {
|
||||
var halfway = Math.floor(sites.length / 2);
|
||||
var last = sites.length - 1;
|
||||
if (siteIsBadData(sites[0]) && siteIsBadData(sites[halfway]) && siteIsBadData(sites[last])) {
|
||||
importError('CSV data is not formatted correctly. Please check your import file and try again.');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
apiService.ciphers.import({
|
||||
folders: cipherService.encryptFolders(folders, cryptoService.getKey()),
|
||||
@ -31,6 +38,10 @@
|
||||
}, importError);
|
||||
}
|
||||
|
||||
function siteIsBadData(site) {
|
||||
return (site.name === null || site.name === '--') && (site.password === null || site.password === '');
|
||||
}
|
||||
|
||||
function importError(error) {
|
||||
$analytics.eventTrack('Import Data Failed', { label: $scope.model.source });
|
||||
$uibModalInstance.dismiss('cancel');
|
||||
|
Loading…
Reference in New Issue
Block a user