implemented users validation from admin accounts

This commit is contained in:
arnaucode
2017-09-01 11:20:15 +02:00
parent 1ffd3c0aef
commit 5384336d57
5 changed files with 179 additions and 107 deletions

View File

@@ -30,6 +30,14 @@ code: https://github.com/arnaucode/carsincommonApp
- https (tls/ssl)
```
### Configuration before run:
In the file adminConfig.js, put the sha256 of the password that allows to create new admins:
```js
module.exports = {
'passwordHash': 'Bzij4hEeEUpmXTWyS+X0LR+YcA8WFjP2P7qhW0sxA6s='/*password raw: adminPassword*/
};
```
#### RESOURCES using:

View File

@@ -2,6 +2,7 @@
var mongoose = require('mongoose');
var adminModel = mongoose.model('adminModel');
var userModel = mongoose.model('userModel');
var userController = require('../controllers/userController');
var notificationModel = mongoose.model('notificationModel');
var travelModel = mongoose.model('travelModel');
var travelCtrl = require('../controllers/travelController');
@@ -510,3 +511,61 @@ exports.getUserNetwork = function(req, res) {
}
});
};
// user validation
exports.validateUser = function(req, res) {
adminModel.findOne({
'token': req.headers['x-access-token']
})
.exec(function(err, admin) {
if (!admin) {
res.json({
success: false,
message: 'Admin not found'
});
} else if (admin) {
if (err) return res.send(500, err.message);
userModel.findOne({
_id: req.params.userid
})
.exec(function(err, user) {
if (err) return res.send(500, err.message);
user.validated = true;
user.save(function(err, user) {
if (err) return res.send(500, err.message);
userController.getUserById(req, res);
});
});
}
});
};
// user unvalidate
exports.unvalidateUser = function(req, res) {
adminModel.findOne({
'token': req.headers['x-access-token']
})
.exec(function(err, admin) {
if (!admin) {
res.json({
success: false,
message: 'Admin not found'
});
} else if (admin) {
if (err) return res.send(500, err.message);
userModel.findOne({
_id: req.params.userid
})
.exec(function(err, user) {
if (err) return res.send(500, err.message);
user.validated = false;
user.save(function(err, user) {
if (err) return res.send(500, err.message);
userController.getUserById(req, res);
});
});
}
});
};

View File

@@ -15,7 +15,7 @@ exports.getAllTravels = function(req, res) {
.limit(pageSize)
.skip(pageSize * Number(req.query.page))
.lean()
.populate('user', 'username avatar')
.populate('user', 'username avatar validated')
.exec(function (err, travels) {
if (err) return res.send(500, err.message);
res.status(200).jsonp(travels);
@@ -25,7 +25,7 @@ exports.getAllTravels = function(req, res) {
exports.getTravelById = function (req, res) {
travelModel.findOne({_id: req.params.travelid})
.lean()
.populate('user', 'username avatar telegram phone')
.populate('user', 'username avatar validated telegram phone')
.populate('joins', 'username avatar')
.populate('joinPetitions', 'username avatar')
.populate('comments', 'comment user')

View File

@@ -15,6 +15,7 @@ var userSchema = new Schema({
email: { type: String, required: true },
phone: { type: String },
telegram: { type: String },
validated: { type: Boolean, default: false },
valorations: [{
user: {
type: mongoose.Schema.Types.ObjectId,

View File

@@ -126,6 +126,10 @@ apiRoutes.route('/admin/travels/id/:travelid')
.delete(adminCtrl.deleteTravel);
apiRoutes.route('/admin/users/id/:userid')
.delete(adminCtrl.deleteUser);
apiRoutes.route('/admin/users/validate/id/:userid')
.post(adminCtrl.validateUser);
apiRoutes.route('/admin/users/unvalidate/id/:userid')
.post(adminCtrl.unvalidateUser);
apiRoutes.route('/search/:searchstring')
.get(searchCtrl.searchByString);