From c39a14bb9e02f960d99f779504c29ea5959ac8fc Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Sun, 29 Dec 2019 23:30:49 +0100 Subject: [PATCH] - User Profile - DashBoard start --- src/server/models/user.js | 9 ++++++++ src/server/router/email_router.js | 2 +- src/server/router/index_router.js | 2 +- src/server/router/users_router.js | 34 ++++++++++++++++++++++++---- src/server/tools/server_constants.js | 2 ++ 5 files changed, 43 insertions(+), 6 deletions(-) diff --git a/src/server/models/user.js b/src/server/models/user.js index 9e47e26..3df2225 100644 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -115,6 +115,15 @@ var UserSchema = new mongoose.Schema({ img: { type: String }, + nationality: { + type: String + }, + intcode_cell: { + type: String + }, + iso2_cell: { + type: String + }, cell: { type: String }, diff --git a/src/server/router/email_router.js b/src/server/router/email_router.js index afc5810..ea08872 100644 --- a/src/server/router/email_router.js +++ b/src/server/router/email_router.js @@ -3,7 +3,7 @@ const router = express.Router(); var {User} = require('../models/user'); -router.get('/:email/:idapp', (req, res) => { +router.get('/:idapp/:email', (req, res) => { var email = req.params.email; const idapp = req.params.idapp; diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index 3948f75..07710f8 100644 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -247,7 +247,7 @@ router.patch('/chval', authenticate, (req, res) => { tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue); // If I change my record... - if ((!User.isAdmin(req.user) && !User.isManager(req.user)) || (req.user._id === id)) { + if ((!User.isAdmin(req.user) && !User.isManager(req.user)) && !(req.user._id.toString() === id)) { // If without permissions, exit return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' }); } diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js index 00e2875..b9464a3 100644 --- a/src/server/router/users_router.js +++ b/src/server/router/users_router.js @@ -31,9 +31,9 @@ function existSubScribe(userId, access, browser) { } // POST /users -router.post('/', (req, res) => { +router.post('/', async (req, res) => { tools.mylog("POST /users"); - const body = _.pick(req.body, ['email', 'password', 'username', 'name', 'surname', 'idapp', 'keyappid', 'lang']); + const body = _.pick(req.body, ['email', 'password', 'username', 'name', 'surname', 'idapp', 'keyappid', 'lang', 'profile']); const user = new User(body); // tools.mylog("LANG PASSATO = " + user.lang, "IDAPP", user.idapp); @@ -47,6 +47,32 @@ router.post('/', (req, res) => { user.verified_email = true; } + let exit; + + // Check if already esist email or username + exit = await User.findByUsername(user.idapp, user.username).then((useralreadyexist) => { + if (useralreadyexist) { + res.status(400).send({ code: server_constants.RIS_CODE_USERNAME_ALREADY_EXIST, msg: '' }); + return 1; + } + + }); + + if (exit === 1) + return; + + exit = await User.findByEmail(user.idapp, user.email) + .then((useralreadyexist) => { + if (useralreadyexist) { + res.status(400).send({ code: server_constants.RIS_CODE_EMAIL_ALREADY_EXIST, msg: '' }); + return 1; + } + + }); + + if (exit === 1) + return; + user.save().then(() => { User.findByUsername(user.idapp, user.username) .then((usertrovato) => { @@ -55,7 +81,7 @@ router.post('/', (req, res) => { if (usertrovato !== null) { return user.generateAuthToken(req); } else { - res.status(11100).send(); + res.status(400).send(); return 0; } }).then((token) => { @@ -76,7 +102,7 @@ router.post('/', (req, res) => { }) }); -router.get('/:username/:idapp', (req, res) => { +router.get('/:idapp/:username', (req, res) => { var username = req.params.username; const idapp = req.params.idapp; diff --git a/src/server/tools/server_constants.js b/src/server/tools/server_constants.js index 0c054ca..22b585c 100644 --- a/src/server/tools/server_constants.js +++ b/src/server/tools/server_constants.js @@ -6,6 +6,8 @@ module.exports = Object.freeze({ RIS_CODE_EMAIL_ALREADY_VERIFIED: -5, RIS_CODE_EMAIL_VERIFIED: 1, + RIS_CODE_USERNAME_ALREADY_EXIST: -60, + RIS_CODE_EMAIL_ALREADY_EXIST: -50, RIS_CODE_EMAIL_NOT_SENT: -40, RIS_CODE_ERR_UNAUTHORIZED: -30, RIS_CODE_LOGIN_ERR_GENERIC: -20,