- DashBoard, Profile, Order Menu

This commit is contained in:
Paolo Arena
2019-12-31 00:44:53 +01:00
parent c39a14bb9e
commit 892eccb4fc
12 changed files with 150 additions and 22 deletions

View File

@@ -2,8 +2,8 @@ p Benvenuto #{name} nel portale di #{nomeapp}!
p I tuoi dati di accesso da ricordare sono:
span Username: 
strong #{username}<br>
span hai dimenticato la Password? :&nbsp;
strong <a href=#{forgetpwd} target="_blank">Trovala qui</a><br>
span Password :&nbsp; (** non mostrata per privacy **)<br>
span Email:&nbsp;
strong #{emailto}<br>
p Per confermare la registrazione clicca sul bottone:

View File

@@ -1,8 +1,8 @@
{
"name": "freeplanet-serverside",
"version": "1.0.1",
"version": "1.0.2",
"description": "freeplanet serverside",
"main": "server.js",
"main": "server/server.js",
"scripts": {
"start": "nodemon src/server/server.js",
"build": "gulp build",
@@ -12,7 +12,7 @@
"test-watch": "nodemon --exec 'npm test'"
},
"engines": {
"node": "^8.9.0"
"node": "^12.14.0"
},
"author": "Paolo Arena",
"license": "MIT",

View File

@@ -130,12 +130,12 @@ if (process.env.NODE_ENV === 'production') {
},
{
idapp: '7',
name: 'Notevole',
adminemail: '',
name: 'Notevole (Server Test)',
adminemail: 'pao.loarena77@gmail.com',
manageremail: '',
host: 'https://notevole.freeplanet.app',
host: 'https://testnotevole.freeplanet.app',
portapp: '0',
dir: '/var/www/notevole.freeplanet.app',
dir: '/var/www/testnotevole.freeplanet.app',
},
];
} else {

View File

@@ -19,13 +19,20 @@ const MyPageSchema = new Schema({
author_username: {
type: String,
},
lang: {
type: String,
},
title: {
type: String,
},
path: {
icon: {
type: String,
},
icon: {
order: {
type: Number,
default: 1000,
},
path: {
type: String,
},
keywords: {

View File

@@ -69,6 +69,9 @@ var UserSchema = new mongoose.Schema({
verified_email: {
type: Boolean,
},
made_gift: {
type: Boolean,
},
tokens: [{
access: {
type: String,
@@ -127,6 +130,9 @@ var UserSchema = new mongoose.Schema({
cell: {
type: String
},
country_pay: {
type: String
},
email_paypal: {
type: String
},
@@ -155,7 +161,7 @@ UserSchema.methods.generateAuthToken = function (req) {
var user = this;
const useragent = req.get('User-Agent');
tools.mylog("GENERATE USER-AGENT = ", useragent);
// tools.mylog("GENERATE USER-AGENT = ", useragent);
const access = 'auth';
const browser = useragent;
@@ -172,7 +178,7 @@ UserSchema.methods.generateAuthToken = function (req) {
return user.save()
.then(() => {
console.log("TOKEN CREATO IN LOGIN : " + token);
// console.log("TOKEN CREATO IN LOGIN : " + token);
return token;
})
.catch(err => {
@@ -283,6 +289,51 @@ UserSchema.statics.findByUsername = function (idapp, username) {
});
};
UserSchema.statics.getUserShortDataByUsername = function (idapp, username) {
const User = this;
return User.findOne({
'idapp': idapp,
'username': username,
}, {
username: 1,
name: 1,
surname: 1,
verified_email: 1,
made_gift: 1,
email: 1,
date_reg: 1,
img: 1
}).then((ris) => {
if (!!ris) {
// console.log('ris', ris);
if (!!ris._doc)
return ris._doc;
else
return null;
}
});
};
UserSchema.statics.getDownlineByUsername = function (idapp, username) {
const User = this;
return User.find({
'idapp': idapp,
'aportador_solidario': username,
}, {
username: 1,
name: 1,
surname: 1,
verified_email: 1,
made_gift: 11,
email: 1,
date_reg: 1,
img: 1
}, (err, arrrec) => {
return arrrec
});
};
UserSchema.statics.findByLinkreg = function (idapp, linkreg) {
var User = this;
@@ -362,6 +413,7 @@ UserSchema.statics.getUsersList = function (idapp) {
name: 1,
surname: 1,
verified_email: 1,
made_gift: 1,
perm: 1,
email: 1,
date_reg: 1,
@@ -381,7 +433,19 @@ UserSchema.statics.getUsersListByParams = function (params) {
return User.find(
{ $match: filterMatchBefore },
{ 'idapp': idapp },
{ username: 1, name: 1, surname: 1, verified_email: 1, perm: 1, email: 1, date_reg: 1, img: 1, lasttimeonline: 1, news_on: 1 })
{
username: 1,
name: 1,
surname: 1,
verified_email: 1,
made_gift: 1,
perm: 1,
email: 1,
date_reg: 1,
img: 1,
lasttimeonline: 1,
news_on: 1
})
};
@@ -410,7 +474,6 @@ if (tools.INITDB_FIRSTIME) {
const User = mongoose.model('User', UserSchema);
class Hero {
constructor(name, level) {
this.name = name;

View File

@@ -0,0 +1,52 @@
const express = require('express');
const router = express.Router();
const tools = require('../tools/general');
const server_constants = require('../tools/server_constants');
const { authenticate } = require('../middleware/authenticate');
const { User } = require('../models/user');
const mongoose = require('mongoose');
const Subscription = mongoose.model('subscribers');
const _ = require('lodash');
const { ObjectID } = require('mongodb');
router.post('/', authenticate, async (req, res) => {
const idapp = req.body.idapp;
try {
const aportador_solidario = req.user.aportador_solidario;
// DATA: username, name, surname, email, intcode_cell, cell
const dashboard = {
aportador: {},
downline: []
};
// Data of my Aportador
dashboard.aportador = await User.getUserShortDataByUsername(idapp, aportador_solidario);
// Data of my Downline
dashboard.downline = await User.getDownlineByUsername(idapp, req.user.username);
for (let index = 0; index < dashboard.downline.length; ++index) {
dashboard.downline[index].downline = await User.getDownlineByUsername(idapp, dashboard.downline[index].username);
}
// Extract all the todos of the userId only
// tools.mylog('dashboard', dashboard);
res.send({ dashboard });
} catch (e) {
console.error(e);
res.status(400).send(e);
}
});
module.exports = router;

View File

@@ -244,7 +244,7 @@ router.patch('/chval', authenticate, (req, res) => {
const mytable = getTableByTableName(mydata.table);
const fieldsvalue = mydata.fieldsvalue;
tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue);
// tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue);
// If I change my record...
if ((!User.isAdmin(req.user) && !User.isManager(req.user)) && !(req.user._id.toString() === id)) {
@@ -253,7 +253,7 @@ router.patch('/chval', authenticate, (req, res) => {
}
mytable.findByIdAndUpdate(id, { $set: fieldsvalue }).then((rec) => {
tools.mylogshow(' REC TO MODIFY: ', rec);
// tools.mylogshow(' REC TO MODIFY: ', rec);
if (!rec) {
return res.status(404).send();
} else {

View File

@@ -33,7 +33,7 @@ function existSubScribe(userId, access, browser) {
// POST /users
router.post('/', async (req, res) => {
tools.mylog("POST /users");
const body = _.pick(req.body, ['email', 'password', 'username', 'name', 'surname', 'idapp', 'keyappid', 'lang', 'profile']);
const body = _.pick(req.body, ['email', 'password', 'username', 'name', 'surname', 'idapp', 'keyappid', 'lang', 'profile', 'aportador_solidario']);
const user = new User(body);
// tools.mylog("LANG PASSATO = " + user.lang, "IDAPP", user.idapp);
@@ -77,7 +77,7 @@ router.post('/', async (req, res) => {
User.findByUsername(user.idapp, user.username)
.then((usertrovato) => {
tools.mylog("TROVATO USERNAME ? ", user.username, usertrovato);
// tools.mylog("TROVATO USERNAME ? ", user.username, usertrovato);
if (usertrovato !== null) {
return user.generateAuthToken(req);
} else {

View File

@@ -57,6 +57,10 @@ module.exports = {
paramemail.send = !previewonly;
}
// if (!transport) {
// transport = this.getTransport();
// }
if (transport) {
paramemail.transport = transport;
} else {
@@ -432,7 +436,7 @@ module.exports = {
// Create Transport
let smtpTransport = null;
if (mylocalsconf.dataemail.email_service !== 'gmail') {
if (mylocalsconf.dataemail.email_service !== 'gmail' && mylocalsconf.dataemail.email_service !== undefined) {
smtpTransport = nodemailer.createTransport({
host: mylocalsconf.dataemail.email_service,
port: mylocalsconf.dataemail.email_port,

View File

@@ -47,6 +47,7 @@ const index_router = require('./router/index_router');
const push_router = require('./router/push_router');
const newsletter_router = require('./router/newsletter_router');
const booking_router = require('./router/booking_router');
const dashboard_router = require('./router/dashboard_router');
const myevent_router = require('./router/myevent_router');
const subscribe_router = require('./router/subscribe_router');
const sendmsg_router = require('./router/sendmsg_router');
@@ -106,6 +107,7 @@ app.use('/sendmsg', sendmsg_router);
app.use('/push', push_router);
app.use('/news', newsletter_router);
app.use('/booking', booking_router);
app.use('/dashboard', dashboard_router);
app.use('/event', myevent_router);
app.use('/email', email_router);
app.use('/todos', todos_router);

View File

@@ -458,7 +458,7 @@ module.exports = {
}
);
console.log('query', query);
// console.log('query', query);
return query;

View File

@@ -12,7 +12,7 @@ module.exports = {
},
fieldsUserToChange() {
return ['_id', 'username', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'ipaddr', 'lasttimeonline', 'profile', 'news_on', 'aportador_solidario']
return ['_id', 'username', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'ipaddr', 'lasttimeonline', 'profile', 'news_on', 'aportador_solidario', 'made_gift']
}
};