arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
commonroutesServer/controllers/adminController.js
controllers/adminController.jsRaw
  1//File: controllers/userController.js
  2var mongoose = require('mongoose');
  3var userModel = mongoose.model('adminModel');
  4
  5var config = require('../config');
  6var pageSize = config.pageSize;
  7
  8/* */
  9var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
 10var express = require("express");
 11var app = express();
 12var config = require('../config'); // get our config file
 13app.set('superSecret', config.secret); // secret variable
 14
 15var crypto = require('crypto');
 16/* */
 17
 18var request = require('request');
 19
 20
 21//POST - Insert a new User in the DB
 22exports.signup = function(req, res) {
 23    //get random avatar
 24    var r = getRand(1, 10);
 25    randAvatar = getAvatar(r);
 26
 27
 28    var user = new userModel({
 29        username: req.body.username,
 30        password: crypto.createHash('sha256').update(req.body.password).digest('base64'),
 31        description: req.body.description,
 32        avatar: randAvatar,
 33        email: req.body.email,
 34        phone: req.body.phone,
 35        telegram: req.body.telegram
 36    });
 37    if (user.username == undefined) {
 38        return res.status(500).jsonp("empty inputs");
 39    } else if (user.password == undefined) {
 40        return res.status(500).jsonp("empty inputs");
 41    } else if (user.email == undefined) {
 42        return res.status(500).jsonp("empty inputs");
 43    }
 44
 45    user.save(function(err, user) {
 46        if (err) return res.send(500, err.message);
 47
 48        exports.login(req, res);
 49    });
 50};
 51
 52
 53//POST - auth user
 54exports.login = function(req, res) {
 55    // find the user
 56    userModel.findOne({
 57            username: req.body.username
 58        })
 59        .select('+password')
 60        .exec(function(err, user) {
 61
 62            if (err) throw err;
 63
 64            if (!user) {
 65                res.json({
 66                    success: false,
 67                    message: 'Authentication failed. User not found.'
 68                });
 69            } else if (user) {
 70
 71                req.body.password = crypto.createHash('sha256').update(req.body.password).digest('base64');
 72
 73                // check if password matches
 74                if (user.password != req.body.password) {
 75                    res.json({
 76                        success: false,
 77                        message: 'Authentication failed. Wrong password.'
 78                    });
 79                } else {
 80
 81                    // if user is found and password is right
 82                    // create a token
 83                    var token = jwt.sign({
 84                        foo: 'bar'
 85                    }, app.get('superSecret'), {
 86                        //expiresInMinutes: 1440 // expires in 24 hours
 87                        //expiresIn: '60m'
 88                    });
 89                    user.token = token;
 90                    user.save(function(err, user) {
 91                        if (err) return res.send(500, err.message);
 92                        //res.status(200).jsonp(travel);
 93                        console.log(user);
 94                        // return the information including token as JSON
 95                        user.password = "";
 96                        res.json({
 97                            success: true,
 98                            message: 'Enjoy your token!',
 99                            token: token,
100                            user: user
101                        });
102                    });
103
104                }
105
106            }
107
108        });
109};
110exports.changePassword = function(req, res) {
111    //if(req.body.)
112    userModel.update({
113            'token': req.headers['x-access-token']
114        }, req.body,
115        function(err) {
116            if (err) return console.log(err);
117            exports.getUserByToken(req, res);
118        });
119};