File: //var/dev/farhangmoaser/web/routes/user/user.js
var express = require('express');
var router = express.Router();
var path = require('path');
var consts = require(path.join(BASEDIR, 'consts'));
var UserModel = require(path.join(BASEDIR, 'models/user'));
var db = require(path.join(BASEDIR, 'connectors/mysql'));
router.get('/activate/:key', function(req, res, next) {
db.getConnection(function(err, conn){
if(err) return res.render('auth/user_activation', {error: true, activated: false, suspended: false, found: false, user: {}});
var user = new UserModel(conn, {activationKey: req.params.key});
user.load().then(
user => {
if(!user)
return res.render('auth/user_activation', {error: false, activated: false, suspended: false, found: false, user: user.fields()});
if(user.field('state') != consts.v.STATE_INACTIVE)
return res.render('auth/user_activation', {error: false, activated: false, suspended: true, found: true, user: user.fields()});
user.field('state', consts.v.STATE_ACTIVE);
user.generateActivationKey(); // just to change the previously used key
user.save().then(
user => {
res.render('auth/user_activation', {error: false, activated: true, suspended: false, found: true, user: user.fields()});
},
error => {
res.render('auth/user_activation', {error: true, activated: false, suspended: false, found: true, user: user.fields()});
});
},
error => {
res.render('auth/user_activation', {error: true, activated: false, suspended: false, found: false, user: user.fields()});
}
);
});
});
router.get('/reset/:key', function(req, res, next) {
db.getConnection(function(err, conn){
if(err) return res.render('auth/user_reset', {error: true, key: req.params.key, found: false, user: {}});
var user = new UserModel(conn, {activationKey: req.params.key});
user.load().then(
user => {
if(user)
return res.render('auth/user_reset', {error: false, key: req.params.key, found: true, user: user.fields()})
else
return res.render('auth/user_reset', {error: false, key: req.params.key, found: false, user: {}})
},
error => res.render('auth/user_reset', {error: true, key: req.params.key, found: false, user: user.fields()})
);
});
});
module.exports = router;