diff --git a/src/server/backend/db/db.js b/src/server/backend/db/db.js
index 26fb727..6555955 100644
--- a/src/server/backend/db/db.js
+++ b/src/server/backend/db/db.js
@@ -59,6 +59,21 @@ module.exports.writeDataSimple = ( db, column, searchQuery, data ) => {
} );
};
+module.exports.checkDataAvailability = ( db, column, searchQuery ) => {
+ return new Promise( ( resolve, reject ) => {
+ dbh.query( { 'command': 'checkDataAvailability', 'property': column, 'searchQuery': searchQuery }, dbRef[ db ] ).then( res => {
+ if ( res.length > 0 ) {
+ resolve( true );
+ } else {
+ resolve( false );
+ }
+ } ).catch( error => {
+ reject( error );
+ } );
+ } );
+};
+
+
module.exports.getJSONData = ( file ) => {
return new Promise( ( resolve, reject ) => {
fs.readFile( path.join( __dirname + '/data/' + file + '.json' ), ( error, data ) => {
diff --git a/src/server/backend/userRoutes.js b/src/server/backend/userRoutes.js
index 41efb32..9ace9a2 100644
--- a/src/server/backend/userRoutes.js
+++ b/src/server/backend/userRoutes.js
@@ -140,9 +140,20 @@ module.exports = ( app, settings ) => {
app.post( '/user/signup', bodyParser.json(), ( request, response ) => {
// TODO: Make sure that user does not exist yet first and if user
// exists, send back info that it is that way
- response.send( 'ok' );
- db.writeDataSimple( 'users', 'email', request.body.email, { 'pass': pwdmanager.hashPassword( request.query.password ), 'street': '', 'house_number': '', 'country': request.query.country, 'first_name': request.query.firstName, 'name': request.query.name, 'two_fa': String( request.query.twoFA ) } ).then( res => {
- console.log( res );
- } );
+ // TODO: check for 2fa
+ // TODO: Send mail to confirm email address
+ if ( request.body.password && request.body.password === request.body.password2 && request.body.firstName && request.body.name && request.body.country && request.body.mail ) {
+ db.checkDataAvailability( 'users', 'email', request.body.mail ).then( status => {
+ if ( status ) {
+ response.send( 'exists' );
+ } else {
+ db.writeDataSimple( 'users', 'email', request.body.mail, { 'pass': pwdmanager.hashPassword( request.body.password ), 'first_name': request.body.firstName, 'name': request.body.name, 'two_fa': String( request.body.twoFA ), 'user_data': { 'country': request.body.country } } ).then( () => {
+ response.send( 'ok' );
+ } );
+ }
+ } );
+ } else {
+ response.status( 400 ).send( 'incomplete' );
+ }
} );
};
\ No newline at end of file
diff --git a/src/webapp/main/src/views/user/LoginView.vue b/src/webapp/main/src/views/user/LoginView.vue
index f8f1ec0..8a627dc 100644
--- a/src/webapp/main/src/views/user/LoginView.vue
+++ b/src/webapp/main/src/views/user/LoginView.vue
@@ -19,6 +19,7 @@