implemented first /sample methods
This commit is contained in:
@ -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);
|
||||
|
@ -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) {
|
||||
|
Reference in New Issue
Block a user