This commit is contained in:
2020-05-05 23:07:00 -04:00
parent f2309463a4
commit 4d51a4ac9e
26 changed files with 476 additions and 189 deletions

View File

@ -29,14 +29,15 @@ router.all('/logout', async function(req, res, next){
}
});
router.post('/invite/:token', async function(req, res, next) {
router.post('/invite/:token/:mailToken', async function(req, res, next) {
try{
req.body.token = req.params.token;
req.body.mailToken = req.params.mailToken;
let user = await User.addByInvite(req.body);
let token = await AuthToken.add(user);
return res.json({
user: user.username,
user: user.uid,
token: token.token
});
@ -46,6 +47,21 @@ router.post('/invite/:token', async function(req, res, next) {
});
router.post('/invite/:token', async function(req, res, next){
try{
let data = {
token: req.params.token,
url: `${req.protocol}://${req.hostname}`,
mail: req.body.mail,
}
await User.verifyEmail(data);
return res.send({message: 'sent'});
}catch(error){
next(error)
}
});
module.exports = router;
/*

View File

@ -1,7 +1,11 @@
'use strict';
var express = require('express');
var router = express.Router();
const moment = require('moment');
const {InviteToken} = require('./../models/token');
/* GET home page. */
router.get('/', async function(req, res, next) {
res.render('home', { title: 'Express' });
@ -12,21 +16,38 @@ router.get('/users', function(req, res, next) {
res.render('users', { title: 'Express' });
});
router.get('/login/invite/:token', async function(req, res, next){
router.get('/login/invite/:token/:mailToken', async function(req, res, next){
try{
console.log('token', req.params.token)
let token = await InviteToken.get(req.params.token);
console.log('invite', token);
if(token.is_valid){
if(token.is_valid && token.mail !== '__NONE__' && token.mail_token === req.params.mailToken){
token.created_on = moment(token.created_on, 'x').fromNow();
res.render('invite', { title: 'Express', invite: token });
}else{
next({status: 404});
next({message: 'token not found', status: 404});
}
}catch(error){
next(error);
}
});
router.get('/login/invite/:token', async function(req, res, next){
try{
let token = await InviteToken.get(req.params.token);
token.created_on = moment(token.created_on, 'x').fromNow();
if(token.is_valid){
res.render('invite_email', { title: 'Express', invite: token });
}else{
next({message: 'token not found', status: 404});
}
}catch(error){
next(error);
}
});
/* GET home page. */
router.get('/login', function(req, res, next) {
res.render('login', {redirect: req.query.redirect});

View File

@ -15,7 +15,7 @@ router.get('/', async function(req, res, next){
router.post('/', async function(req, res, next){
try{
req.body.created_by = req.user.username
req.body.created_by = req.user.uid
return res.json({results: await User.add(req.body)});
}catch(error){
@ -23,11 +23,13 @@ router.post('/', async function(req, res, next){
}
});
router.delete('/:username', async function(req, res, next){
router.delete('/:uid', async function(req, res, next){
try{
let user = await User.get(req.params.username);
let user = await User.get(req.params.uid);
return res.json({username: req.params.username, results: await user.remove()})
console.log('delete user', user);
return res.json({uid: req.params.uid, results: await user.remove()})
}catch(error){
next(error);
}
@ -36,7 +38,7 @@ router.delete('/:username', async function(req, res, next){
router.get('/me', async function(req, res, next){
try{
return res.json(await User.get({username: req.user.username}));
return res.json(await User.get({uid: req.user.uid}));
}catch(error){
next(error);
}
@ -50,9 +52,9 @@ router.put('/password', async function(req, res, next){
}
});
router.put('/password/:username', async function(req, res, next){
router.put('/password/:uid', async function(req, res, next){
try{
let user = await User.get(req.params.username);
let user = await User.get(req.params.uid);
return res.json({results: await user.setPassword(req.body)});
}catch(error){
next(error);
@ -72,7 +74,7 @@ router.post('/invite', async function(req, res, next){
router.post('/key', async function(req, res, next){
try{
let added = await User.addSSHkey({
username: req.user.username,
uid: req.user.uid,
key: req.body.key
});