HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
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;