mirror of
https://github.com/bitwarden/browser
synced 2025-01-27 03:35:05 +01:00
dashlane csv importer (#1)
This commit is contained in:
parent
6cbd618fb8
commit
f86bce970e
@ -53,6 +53,9 @@
|
||||
case 'pwsafexml':
|
||||
importPasswordSafeXml(file, success, error);
|
||||
break;
|
||||
case 'dashlanecsv':
|
||||
importDashlaneCsv(file, success, error);
|
||||
break;
|
||||
default:
|
||||
error();
|
||||
break;
|
||||
@ -1014,7 +1017,7 @@
|
||||
uri: null,
|
||||
password: null,
|
||||
username: null,
|
||||
notes: note && note !== '' ? note : null,
|
||||
notes: note && note !== '' ? note : null
|
||||
};
|
||||
|
||||
if (row.length > 2 && (row.length % 2) === 0) {
|
||||
@ -1154,5 +1157,120 @@
|
||||
};
|
||||
}
|
||||
|
||||
function importDashlaneCsv(file, success, error) {
|
||||
Papa.parse(file, {
|
||||
encoding: 'UTF-8',
|
||||
complete: function (results) {
|
||||
parseCsvErrors(results);
|
||||
|
||||
var folders = [],
|
||||
sites = [],
|
||||
siteRelationships = [];
|
||||
|
||||
for (var j = 0; j < results.data.length; j++) {
|
||||
var skip = false;
|
||||
var row = results.data[j];
|
||||
if (!row.length || row.length === 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var site = {
|
||||
name: row[0] && row[0] !== '' ? row[0] : '--',
|
||||
favorite: false,
|
||||
uri: null,
|
||||
password: null,
|
||||
username: null,
|
||||
notes: null
|
||||
};
|
||||
|
||||
if (row.length === 2) {
|
||||
site.uri = trimUri(row[1]);
|
||||
}
|
||||
else if (row.length === 3) {
|
||||
site.uri = trimUri(row[1]);
|
||||
site.username = row[2];
|
||||
}
|
||||
else if (row.length === 4) {
|
||||
if (row[2] === '' && row[3] === '') {
|
||||
site.username = row[1];
|
||||
site.notes = row[2] + '\n' + row[3];
|
||||
}
|
||||
else {
|
||||
site.username = row[2];
|
||||
site.notes = row[1] + '\n' + row[3];
|
||||
}
|
||||
}
|
||||
else if (row.length === 5) {
|
||||
site.uri = trimUri(row[1]);
|
||||
site.username = row[2];
|
||||
site.password = row[3];
|
||||
site.notes = row[4];
|
||||
}
|
||||
else if (row.length === 6) {
|
||||
if (row[2] === '') {
|
||||
site.username = row[3];
|
||||
site.notes = row[5];
|
||||
}
|
||||
else {
|
||||
site.username = row[2];
|
||||
site.notes = row[3] + '\n' + row[5];
|
||||
}
|
||||
|
||||
site.uri = trimUri(row[1]);
|
||||
site.password = row[4];
|
||||
}
|
||||
else if (row.length === 7) {
|
||||
if (row[2] === '') {
|
||||
site.username = row[3];
|
||||
site.notes = row[4] + '\n' + row[6];
|
||||
}
|
||||
else {
|
||||
site.username = row[2];
|
||||
site.notes = row[3] + '\n' + row[4] + '\n' + row[6];
|
||||
}
|
||||
|
||||
site.uri = trimUri(row[1]);
|
||||
site.password = row[5];
|
||||
}
|
||||
else {
|
||||
site.notes = '';
|
||||
for (var i = 1; i < row.length; i++) {
|
||||
site.notes = site.notes + row[i] + '\n';
|
||||
if (row[i] === 'NO_TYPE') {
|
||||
skip = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (site.uri && site.uri.indexOf('.') >= 0) {
|
||||
site.uri = 'http://' + site.uri.toLowerCase().trim();
|
||||
}
|
||||
|
||||
if (skip) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (site.username === '') {
|
||||
site.username = null;
|
||||
}
|
||||
if (site.password === '') {
|
||||
site.password = null;
|
||||
}
|
||||
if (site.notes === '') {
|
||||
site.notes = null;
|
||||
}
|
||||
if (site.uri === '') {
|
||||
site.uri = null;
|
||||
}
|
||||
|
||||
sites.push(site);
|
||||
}
|
||||
|
||||
success(folders, sites, siteRelationships);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return _service;
|
||||
});
|
||||
|
@ -15,6 +15,7 @@
|
||||
<option value="safeincloudcsv">SafeInCloud (csv)</option>
|
||||
<option value="keypassxml">KeyPass (xml)</option>
|
||||
<option value="padlockcsv">Padlock (csv)</option>
|
||||
<option value="dashlanecsv">Dashlane (csv)</option>
|
||||
<option value="1password1pif">1Password (1pif)</option>
|
||||
<option value="upmcsv">Universal Password Manager (csv)</option>
|
||||
<option value="keepercsv">Keeper (csv)</option>
|
||||
|
Loading…
x
Reference in New Issue
Block a user