Skip to content

Instantly share code, notes, and snippets.

@BahiHussein
Created August 8, 2016 11:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BahiHussein/a191db0699aa9ce1b9cee766c40019a4 to your computer and use it in GitHub Desktop.
Save BahiHussein/a191db0699aa9ce1b9cee766c40019a4 to your computer and use it in GitHub Desktop.
var express = require('express');
var router = express.Router();
var User = require('../../models/users.js');
var config = require('../../config/config.js');
var Say = require('../../config/say.js');
var Check = require('../../helpers/check.js');
var Regex = require('../../config/regex.js');
router.post('/signin', function(req, res, next){
if(!Check.required(req, ['username', 'password'])){
res.status(400);
res.send({error: Say.error.missingParams});
return false;
}
Check.regex(req, [
{param:'username', regex:Regex.username},
{param:'password', regex: Regex.password}
]);
if(req.errors && req.errors.length > 1){
res.status(400);
res.send({error: req.errors});
return false;
} else {
var username = req.body.username.trim().toLowerCase();
var password = req.body.password.trim();
User.findOne({'username': username}, '_id username password role gender', function(err, user){
if(user) {
if(user.validPassword(password)){
user.updateKey(res);
} else {
res.status(400);
res.send({error: Say.error.wrongC});
return false;
}
} else {
res.status(400)
res.send({error: Say.error.notFound});
return false;
}
});
}
});
module.exports = router;
var express = require('express');
var router = express.Router();
var User = require('../../models/users.js');
var Check = require('../../helpers/check.js');
var Say = require('../../config/say.js');
var Regex = require('../../config/regex.js');
var Security = require('../../helpers/security.js');
//CREATE
router.post('/signup',function(req, res, next){
//check exist, if not exit at the point
//'g-recaptcha-response'
if(!Check.required(req, ['username', 'password', 'gender', 'birthdate'])){
res.status(400);
res.send({error: Say.error.missingParams});
return false;
}
Check.regex(req, [
{param:'username', regex:Regex.username},
{param:'password', regex: Regex.password}
]);
Check.isDate(req, ['birthdate']);
if(req.errors && req.errors.length > 1){
res.status(400);
res.send({error: req.errors});
} else {
//trimForComparisionAndValidation
var data = {};
data.username = req.body.username.trim().toLowerCase();
data.password = req.body.password.trim();
data.gender = req.body.gender.trim().toLowerCase();
data.birthdate = req.body.birthdate;
var role = "user";
//if super admin signature exists
if(Security.hasSuperAdminSignature(req)){
role = "admin";
}
User.findOne({'username': data.username}, '_id', function(err, exists){
if(exists) {
res.status(400);
res.send({error: Say.error.exists});
} else if (err){
res.status(400);
res.send({error: err});
} else {
//creating new record
//Before adding a new role submitter id should be checked and role should be submited
var user = new User;
user.add(data, role, res);
}
});
}
});
module.exports = router;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment