Archived
2

implemented first /sample methods

This commit is contained in:
VLE2FE
2020-05-06 14:39:04 +02:00
parent af071a9445
commit 20f57acd2a
24 changed files with 844 additions and 89 deletions

View File

@ -9,7 +9,7 @@ import UserModel from '../models/user';
module.exports = async (req, res, next) => {
let givenMethod = ''; // authorization method given by client, basic taken preferred
let user = {name: '', level: ''}; // user object
let user = {name: '', level: '', id: ''}; // user object
// test authentications
const userBasic = await basic(req, next);
@ -45,7 +45,8 @@ module.exports = async (req, res, next) => {
req.authDetails = {
method: givenMethod,
username: user.name,
level: user.level
level: user.level,
id: user.id
};
next();
@ -57,12 +58,12 @@ function basic (req, next): any { // checks basic auth and returns changed user
const auth = basicAuth(req);
if (auth !== undefined) { // basic auth available
UserModel.find({name: auth.name}).lean().exec( (err, data: any) => { // find user
if (err) next(err);
if (err) return next(err);
if (data.length === 1) { // one user found
bcrypt.compare(auth.pass, data[0].pass, (err, res) => { // check password
if (err) next(err);
if (err) return next(err);
if (res === true) {
resolve({level: data[0].level, name: data[0].name});
resolve({level: data[0].level, name: data[0].name, id: data[0]._id.toString()});
}
else {
resolve(null);
@ -84,9 +85,9 @@ function key (req, next): any { // checks API key and returns changed user obje
return new Promise(resolve => {
if (req.query.key !== undefined) {
UserModel.find({key: req.query.key}).lean().exec( (err, data: any) => { // find user
if (err) next(err);
if (err) return next(err);
if (data.length === 1) { // one user found
resolve({level: data[0].level, name: data[0].name});
resolve({level: data[0].level, name: data[0].name, id: data[0]._id.toString()});
}
else {
resolve(null);

View File

@ -14,6 +14,7 @@ export default class TestHelper {
401: {status: 'Unauthorized'},
403: {status: 'Forbidden'},
404: {status: 'Not found'},
500: {status: 'Internal server error'}
}
static before (done) {