function make(app,express) { var everyauth = require('everyauth-express3') , routes = require('./mycloud/routes') , fs = require('fs'); var db = require('./mycloud/lib/db.js'); var dir_info = require('./mycloud/lib/dir_info.js'); var usersByLogin = { 'admin': { id: 1, name: 'Admin', login: '******', email: '*****@*****.**', password: '******', maxSize: '10M' }, 'torsten': { id: 2, name: 'Torsten Hein', login: '******', email: '*****@*****.**', password: '******', maxSize: '1GB' } }; everyauth .password .loginWith('login') // login, email or phone .getLoginPath('/login') .postLoginPath('/login') //.loginView('login') .loginLocals( function (req, res, done) { setTimeout( function () { done(null, { title: 'Login' }); }, 200); }) .authenticate( function (login, password) { var errors = []; if (!login) errors.push('Missing login'); if (!password) errors.push('Missing password'); if (errors.length) return errors; var user = usersByLogin[login]; if (!user) return ['Login failed']; if (user.password !== password) return ['Login failed']; return user; }) .respondToLoginSucceed( function (res, user) { if (user) { // Then the login was successful return res.json({ status: 'ok' }, 200); } }) .respondToLoginFail( function (req, res, errors, login) { if (!errors || !errors.length) return; console.log('login failed ' + JSON.stringify(errors)); return res.json({ status: 'fail', errors: errors }, 200); }) .getRegisterPath('/register') .postRegisterPath('/register') .registerView('register.jade') .registerLocals( function (req, res, done) { setTimeout( function () { done(null, { title: 'Async Register' }); }, 200); }) .extractExtraRegistrationParams( function (req) { return { email: req.body.email }; }) .validateRegistration( function (newUserAttrs, errors) { var login = newUserAttrs.login; if (usersByLogin[login]) errors.push('Login already taken'); return errors; }) .registerUser( function (newUserAttrs) { var login = newUserAttrs[this.loginKey()]; return usersByLogin[login] = newUserAttrs; }); //.loginSuccessRedirect('/files'); //.registerSuccessRedirect('/'); everyauth.everymodule.findUserById( function (userId, callback) { for (login in usersByLogin) { if (usersByLogin[login].id == userId) { // FUNZT!!! console.log(JSON.stringify(usersByLogin[login]) + ' found by id ' + userId); return callback(null, usersByLogin[login]); } } console.log('user not found by id ' + userId); callback(['user not found'], null); //User.findById(userId, callback); // callback has the signature, function (err, user) {...} }); var authRequired = function(req, res, next) { if (req.loggedIn) { return next(); } if (req.headers['user-agent']) res.redirect('/'); else res.json( { status: 'fail', message: 'authorization required'}, 401 ); }; // Configuration var serverConfig = require('./mycloud/serverConfig.js'); app.configure(function(){ app.use(express.bodyParser({uploadDir:'./uploads'})); app.use(express.methodOverride()); app.use(everyauth.middleware(app)); }); app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function(){ app.use(express.errorHandler()); }); app.get('/dir*', authRequired, routes.listDirEntries); app.post('/dir*', authRequired, routes.createDirectory); app.put('/dir*', authRequired, routes.renameDirectory); app.del('/dir*', authRequired, routes.deleteDirectory); app.get('/file*', authRequired, routes.downloadFile); app.post('/file*', authRequired, routes.formUploadData); app.put('/file*', authRequired, routes.renameFile); app.del('/file*', authRequired, routes.deleteFile); app.get('/list', authRequired, routes.filelist); dir_info.syncDBWithFS(serverConfig.data.dbName, serverConfig.data.basepath, function(err, data) { if (err) console.log(err); serverConfig.data.files = data; }); }
} connection.query(q, function(err, rows, fields) { if (err) throw err; callback(rows, fields); if (connection != null) { connection.end(); connection = null; } }); } everyauth.everymodule.findUserById(function(userId, callback) { console.log(userId); dbQuery("select * from users where id='"+userId+"'", function(rows, fields) { //if (rows.length == 1) { console.log(rows[0]); callback(false, rows[0]); //} }); }); var login = function(username, password, res) { console.log(username + ", " + password); dbQuery("select * from users where username='******' AND password='******'", function(rows, fields) { if (rows.length == 1) { res.render("login", {title: "home", userinfo: rows[0]}); } else { res.write("invalid username or password"); res.end(); }