Ver código fonte

New database structure with users support

Pitu 7 anos atrás
pai
commit
13b2242bdf
1 arquivos alterados com 22 adições e 41 exclusões
  1. 22 41
      database/db.js

+ 22 - 41
database/db.js

@@ -1,9 +1,9 @@
-
-let init = function(db, config){
+let init = function(db){
 
 	// Create the tables we need to store galleries and files
 	db.schema.createTableIfNotExists('albums', function (table) {
 		table.increments()
+		table.integer('userid')
 		table.string('name')
 		table.integer('enabled')
 		table.integer('timestamp')
@@ -11,6 +11,7 @@ let init = function(db, config){
 
 	db.schema.createTableIfNotExists('files', function (table) {
 		table.increments()
+		table.integer('userid')
 		table.string('name')
 		table.string('original')
 		table.string('type')
@@ -21,48 +22,28 @@ let init = function(db, config){
 		table.integer('timestamp')
 	}).then(() => {})
 
-	db.schema.createTableIfNotExists('tokens', function (table) {
-		table.string('name')
-		table.string('value')
+	db.schema.createTableIfNotExists('users', function (table) {
+		table.increments()
+		table.string('username')
+		table.string('password')
+		table.string('token')
 		table.integer('timestamp')
 	}).then(() => {
-
-		// == Generate a 1 time token == //
-		db.table('tokens').then((tokens) => {
-			if(tokens.length !== 0) return printAndSave(config, tokens[0].value, tokens[1].value)
-
-			// This is the first launch of the app
-			let clientToken = require('randomstring').generate()
-			let adminToken = require('randomstring').generate()
-			let now = Math.floor(Date.now() / 1000)
-
-			db.table('tokens').insert(
-				[
-					{ 
-						name: 'client', 
-						value: clientToken,
-						timestamp: now
-					},
-					{ 
-						name: 'admin', 
-						value: adminToken,
-						timestamp: now
-					}
-				]
-			).then(() => {
-				printAndSave(config, clientToken, adminToken)
-			}).catch(function(error) { console.log(error) })
-		}).catch(function(error) { console.log(error) })
-
+		db.table('users').where({username: 'root'}).then((user) => {
+			if(user.length > 0) return
+
+			require('bcrypt').hash('root', 10, function(err, hash) {
+				if(err) console.error('Error generating password hash for root')
+
+				db.table('users').insert({
+					username: 'root',
+					password: hash,
+					token: require('randomstring').generate(64),
+					timestamp: Math.floor(Date.now() / 1000)
+				}).then(() => {})
+			})
+		})
 	})
-
-}
-
-function printAndSave(config, clientToken, adminToken){
-	console.log('Your client token is: ' + clientToken)
-	console.log('Your admin token is: ' + adminToken)
-	config.clientToken = clientToken
-	config.adminToken = adminToken
 }
 
 module.exports = init