1
0
Fork 0

web,db - comments, remove legacy code and add error page

This commit is contained in:
Ruben Meyer 2020-09-25 20:05:16 +02:00
parent be6f4dc2ac
commit e2de57ea0a
Signed by: rxbn_
GPG Key ID: BE3BF898BE352FE2
8 changed files with 42 additions and 46 deletions

6
app.js
View File

@ -5,11 +5,7 @@
*/ */
// GDS: Global Data System global['debug'] = (process.env.NODE_ENV === 'debug') ? true : false;
global['gds'] = {
debug: (process.env.NODE_ENV === 'debug') ? true : false,
cfg: require(__dirname+'/bin/config')
};
global['__dirname'] = __dirname; global['__dirname'] = __dirname;
/** /**

View File

@ -103,7 +103,6 @@ methods.addUser = async (nick, email, passhash, group) => {
* deletes user identified by haystack from database * deletes user identified by haystack from database
* @author Ruben Meyer * @author Ruben Meyer
* @async * @async
* @TODO add functionality
* @param {String} haystack email or nick * @param {String} haystack email or nick
* @return {Object} async(reply, err) * @return {Object} async(reply, err)
*/ */
@ -216,17 +215,17 @@ methods.updateUser = async (id, obj) => {
/** /**
* updates data based on login * updates data based on user activity
* @author Ruben Meyer * @author Ruben Meyer
* @async * @async
* @TODO UPDATE METHOD; PROBABLY OUTDATED * @TODO UPDATE METHOD; PROBABLY OUTDATED
* @param {Number} id User ID * @param {Number} id User ID
* @param {Object} data data JSON -> remember * @param {Object} data data
* @return {Object} async({date => 'Login Date', token => 'RememberMe Cookie Token'}, err) * @return {Object} async({date => 'ISO Date', timestamp => 'Timestamp'}, err)
*/ */
methods.addActivity = async (id, data) => { methods.addActivity = async (id, data) => {
if(!(typeof id === 'string' || id instanceof mongoose.Types.ObjectId)) return {err: new TypeError('id is not a string::database.updateNewAction('+id+','+JSON.stringify(options)+')', module.filename)}; if(!(typeof id === 'string' || id instanceof mongoose.Types.ObjectId)) return {err: new TypeError('id is not a string::database.addActivity('+id+','+JSON.stringify(options)+')', module.filename)};
if(typeof options !== 'object' && options !== null) return {err: new TypeError('obj is not an object::database.updateUserProfile('+id+','+JSON.stringify(obj)+')', module.filename)}; if(typeof options !== 'object' && options !== null) return {err: new TypeError('obj is not an object::database.addActivity('+id+','+JSON.stringify(obj)+')', module.filename)};
let date = new Date().toISOString(); let date = new Date().toISOString();
let timestamp = new Date(date).getTime(); let timestamp = new Date(date).getTime();
@ -236,28 +235,11 @@ methods.addActivity = async (id, data) => {
last_action: date last_action: date
}); });
if(options.rememberme && options.new_token !== false) {
var token = ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, (c) => (c ^ crypto.randomBytes(new Uint8Array(1).length)[0] & 15 >> c / 4).toString(16));
var Remember = models.remember;
try { return {reply: {
data = await Remember.findOneAndUpdate({userId: id}, {token: token, timestamp: Date.now()}, {upsert: true}).exec(); date: date,
return {reply: { timestamp: timestamp
date: date, }};
timestamp: timestamp,
token: token
}};
}
catch(err) {
return {err: err};
}
} else {
return {reply: {
date: date,
timestamp: timestamp,
token: options.old_token
}};
}
} catch(err) { } catch(err) {
return {err: err}; return {err: err};
} }
@ -488,10 +470,9 @@ methods.getApps = async () => {
}; };
/** /**
* return auth obj * set authentication token for app,user combination
* @author Ruben Meyer * @author Ruben Meyer
* @async * @async
* @TODO
* @param {Object} obj data obj (aId, uId) * @param {Object} obj data obj (aId, uId)
* @return {Object} async({timestamp, token}, err) * @return {Object} async({timestamp, token}, err)
*/ */
@ -522,15 +503,14 @@ methods.setAuthCode = async (obj) => {
}; };
/** /**
* return auth obj * verify authentication token for app,user combination
* @author Ruben Meyer * @author Ruben Meyer
* @async * @async
* @TODO
* @param {Object} obj data obj (aId, aSecret, uId, token) * @param {Object} obj data obj (aId, aSecret, uId, token)
* @return {Object} async(bool, err) * @return {Object} async(bool, err)
*/ */
methods.getAuth = async (obj) => { methods.getAuth = async (obj) => {
if(typeof obj !== 'object') return {err: new TypeError('obj is not an object::database.getAuthCode('+JSON.stringify(obj)+')', module.filename)}; if(typeof obj !== 'object') return {err: new TypeError('obj is not an object::database.getAuth('+JSON.stringify(obj)+')', module.filename)};
var AuthCode = models.authCode; var AuthCode = models.authCode;
@ -562,10 +542,6 @@ methods.getAuth = async (obj) => {
&& obj.uId == String(data.userId) && obj.uId == String(data.userId)
&& obj.aSecret == data1.secret) { && obj.aSecret == data1.secret) {
return {reply: true}; return {reply: true};
//methods.setAuthCode({
// aId: obj.aId,
// uId: obj.uId
//});
} }
else return{reply: false}; else return{reply: false};
} catch(err) { } catch(err) {
@ -579,7 +555,7 @@ methods.getAuth = async (obj) => {
}; };
/** /**
* return app permission * verify if the application exists and the redirectUrl is correct
* @author Ruben Meyer * @author Ruben Meyer
* @async * @async
* @TODO * @TODO

View File

@ -82,7 +82,7 @@ methods.err = methods.error;
// DEBUG // DEBUG
methods.debug = (...data) => { methods.debug = (...data) => {
if(global['gds'].debug) { if(global['debug'] === true) {
log(console.log, data); log(console.log, data);
if(data.length == 1) data = data[0]; if(data.length == 1) data = data[0];

View File

@ -8,7 +8,6 @@ module.exports = {
* @url /api/login * @url /api/login
* @method POST * @method POST
* @POST ['email', 'password'] * @POST ['email', 'password']
* @TODO add new activity 'action.user.login'
*/ */
post: async (req, res) => { post: async (req, res) => {
// if user is logged in (existing session); FAIL // if user is logged in (existing session); FAIL

View File

@ -1,3 +1,5 @@
let cfg = require(global['__dirname']+'/bin/config');
module.exports = { module.exports = {
path: "/register", path: "/register",
/** /**
@ -7,7 +9,7 @@ module.exports = {
*/ */
post: async (req, res) => { post: async (req, res) => {
// if registration is disabled // if registration is disabled
if(!global['gds'].cfg.web.registration) { if(!cfg.web.registration) {
return res.type('json').status(400).end(JSON.stringify({status: 400, message: "msg.auth.registration.deactivated"})); return res.type('json').status(400).end(JSON.stringify({status: 400, message: "msg.auth.registration.deactivated"}));
} else { } else {
// am i rite? // am i rite?

View File

@ -126,7 +126,7 @@ let getRoutes = async () => {
* @url /* * @url /*
* @method all * @method all
*/ */
route.get(['/request', '/login', '/logout', '/reset', '/admin'], asyncer(async (req, res, next) => { route.get(['/request', '/register', '/login', '/logout', '/reset', '/admin'], asyncer(async (req, res, next) => {
// passthrough to next route // passthrough to next route
if(req.path.startsWith('/api')) if(req.path.startsWith('/api'))
return next(); return next();

View File

@ -0,0 +1,19 @@
append var
if((!breadcrumb && !title) || overwrite_vars)
- var breadcrumb = {0: {"name": cfg.app.name, "href": "/"}, 1: {"name": "500 - unknown error", "active": true}};
- var title = "I'm so sooryy";
.uk-flex.uk-margin-medium-top.uk-margin-medium-bottom
div(class="uk-width-auto uk-width-1-4@s")
.uk-flex.uk-flex-auto.uk-flex-column.uk-flex-center.uk-margin-left.uk-margin-right
if(!error)
h1 Me so sorry.
p Could not find something which belongs to your interests.
a(href="/").uk-button.uk-button-default Home
else
append var
- breadcrumb[1] = {"name": error.statusCode + " - "+error.name, "active": true};
h1= error.statusCode + " Error: " + error.name
p= error.error_description
a(href="/").uk-button.uk-button-default Home
div(class="uk-width-auto uk-width-1-4@s")

View File

@ -0,0 +1,4 @@
extends ../blocks/layout.pug
append content
include ../blocks/error/error.pug