Add random data importer, change return to callbacks

This commit is contained in:
brantje 2016-09-26 00:27:02 +02:00
parent 9fbce124c8
commit 07cc22817a
12 changed files with 105 additions and 22 deletions

View file

@ -52,6 +52,7 @@ return [
['name' => 'internal#remind', 'url' => '/api/internal/notifications/remind/{credential_id}', 'verb' => 'POST'],
['name' => 'internal#read', 'url' => '/api/internal/notifications/read/{credential_id}', 'verb' => 'DELETE'],
['name' => 'internal#getAppVersion', 'url' => '/api/internal/version', 'verb' => 'GET'],
['name' => 'internal#generatePerson', 'url' => '/api/internal/generate_person', 'verb' => 'GET'],
]
];

View file

@ -70,4 +70,12 @@ class InternalController extends ApiController {
return new JSONResponse(array('version' => OC_App::getAppVersion('passman')));
}
/**
* @NoAdminRequired
*/
public function generatePerson() {
$random_person = json_decode(file_get_contents('http://api.namefake.com/'));
return new JSONResponse($random_person);
}
}

View file

@ -82,14 +82,17 @@ angular.module('passmanApp')
$scope.startImport = function(){
if(file_data){
parsed_data = $window.PassmanImporter[$scope.selectedImporter.id].readFile(file_data);
_log('Parsed '+ parsed_data.length + ' credentials, starting to import');
$scope.current_import_length = parsed_data.length;
if( parsed_data.length > 0){
addCredential(0);
} else {
// @TODO Show message no data found
}
$window.PassmanImporter[$scope.selectedImporter.id].readFile(file_data, function(parseddata){
parsed_data = parseddata;
_log('Parsed '+ parsed_data.length + ' credentials, starting to import');
$scope.current_import_length = parsed_data.length;
if( parsed_data.length > 0){
addCredential(0);
} else {
// @TODO Show message no data found
}
});
}
}

View file

@ -11,7 +11,7 @@ PassmanImporter.clippers = {
}
};
PassmanImporter.clippers.readFile = function (file_data) {
PassmanImporter.clippers.readFile = function (file_data, callback) {
var credential_list = [];
var re = /<textarea>(.*?)<\/textarea>/gi;
var matches = re.exec(file_data);
@ -46,5 +46,5 @@ PassmanImporter.clippers.readFile = function (file_data) {
}
}
}
return credential_list;
callback(credential_list);
};

View file

@ -11,7 +11,7 @@ PassmanImporter.dashLaneCsv = {
}
};
PassmanImporter.dashLaneCsv.readFile = function (file_data) {
PassmanImporter.dashLaneCsv.readFile = function (file_data, callback) {
var rows = file_data.split('\n');
var credential_list = [];
for (var i = 1, row; row = rows[i]; i++) {
@ -35,5 +35,5 @@ PassmanImporter.dashLaneCsv.readFile = function (file_data) {
credential_list.push(_credential);
}
}
return credential_list;
callback(credential_list);
};

View file

@ -11,7 +11,7 @@ PassmanImporter.keepassCsv = {
}
};
PassmanImporter.keepassCsv.readFile = function (file_data) {
PassmanImporter.keepassCsv.readFile = function (file_data, callback) {
var parsed_csv = PassmanImporter.readCsv(file_data);
var credential_list = [];
for (var i = 0; i < parsed_csv.length; i++) {
@ -35,5 +35,5 @@ PassmanImporter.keepassCsv.readFile = function (file_data) {
_credential.tags = tags;
credential_list.push(_credential);
}
return credential_list;
callback(credential_list);
};

View file

@ -11,7 +11,7 @@ PassmanImporter.lastpassCsv = {
}
};
PassmanImporter.lastpassCsv.readFile = function (file_data) {
PassmanImporter.lastpassCsv.readFile = function (file_data, callback) {
var parsed_csv = PassmanImporter.readCsv(file_data);
var credential_list = [];
for (var i = 0; i < parsed_csv.length; i++) {
@ -27,5 +27,5 @@ PassmanImporter.lastpassCsv.readFile = function (file_data) {
credential_list.push(_credential);
}
}
return credential_list;
callback(credential_list);
};

View file

@ -11,7 +11,7 @@ PassmanImporter.passmanJson = {
}
};
PassmanImporter.passmanJson.readFile = function (file_data) {
PassmanImporter.passmanJson.readFile = function (file_data, callback) {
var parsed_json = PassmanImporter.readJson(file_data);
var credential_list = [];
for (var i = 0; i < parsed_json.length; i++) {
@ -56,5 +56,5 @@ PassmanImporter.passmanJson.readFile = function (file_data) {
credential_list.push(_credential);
}
}
return credential_list;
callback(credential_list);
};

View file

@ -11,7 +11,7 @@ PassmanImporter.passpackCsv = {
}
};
PassmanImporter.passpackCsv.readFile = function (file_data) {
PassmanImporter.passpackCsv.readFile = function (file_data, callback) {
var parsed_csv = PassmanImporter.readCsv(file_data, false);
var credential_list = [];
for (var i = 0; i < parsed_csv.length; i++) {
@ -38,5 +38,5 @@ PassmanImporter.passpackCsv.readFile = function (file_data) {
credential_list.push(_credential);
}
}
return credential_list;
callback(credential_list);
};

View file

@ -0,0 +1,70 @@
// Importers should always start with this
if (!window['PassmanImporter']) {
var PassmanImporter = {}
}
// Define the importer
PassmanImporter.randomData = {
info: {
name: 'Random data',
id: 'randomData',
description: 'Create\'s 10 random credentials for testing purposes.'
}
};
PassmanImporter.randomData.readFile = function (file_data,callback) {
var credential_list = [];
var tags =
['Social media',
'Hosting',
'Forums',
'Webshops',
'FTP',
'SSH',
'Banking',
'Applications',
'Server stuff',
'mysql',
'Wifi',
'Games',
'Certificate',
'Serials'
];
var label;
var generateCredential = function (max, i, cb) {
if(jQuery){
var url = OC.generateUrl('apps/passman/api/internal/generate_person');
$.ajax({
url: url,
dataType: 'json',
success: function(data) {
var _credential = PassmanImporter.newCredential();
label = (Math.random() >= 0.5) ? data.domain : data.email_d +' - ' + data.email_u;
_credential.label = label;
_credential.username = data.username;
_credential.password = data.password;
_credential.url = data.url;
var tag_amount = Math.floor(Math.random()*5);
for(var ta = 0; ta < tag_amount; ta++){
var item = tags[Math.floor(Math.random()*tags.length)];
var tag = {
text: item
};
if(_credential.tags.indexOf(tag) === -1){
_credential.tags.push(tag);
}
}
credential_list.push(_credential);
if(i <= max){
generateCredential(max, i + 1, callback)
} else {
cb(credential_list)
}
}
});
}
};
generateCredential(9, 0,function(credential_list){
callback(credential_list);
});
};

View file

@ -11,7 +11,7 @@ PassmanImporter.zohoCsv = {
}
};
PassmanImporter.zohoCsv.readFile = function (file_data) {
PassmanImporter.zohoCsv.readFile = function (file_data, callback) {
var parsed_csv = PassmanImporter.readCsv(file_data, false);
var credential_list = [];
for (var i = 0; i < parsed_csv.length; i++) {
@ -26,5 +26,5 @@ PassmanImporter.zohoCsv.readFile = function (file_data) {
credential_list.push(_credential);
}
}
return credential_list;
callback(credential_list);
};

View file

@ -70,6 +70,7 @@ script('passman', 'importers/importer-zohocsv');
script('passman', 'importers/importer-passmanjson');
script('passman', 'importers/importer-clipperz');
script('passman', 'importers/importer-passpackcsv');
script('passman', 'importers/importer-randomdata');
/*
* Styles