Update 'userField' from createMsg after Login; Add API for user get, post, put; Refactor API /tag/id

This commit is contained in:
2019-07-20 23:16:42 +02:00
parent 633dbc90f0
commit 92220fc11c
8 changed files with 120 additions and 17 deletions
-1
View File
@@ -60,7 +60,6 @@ const authorization = {
});
}
// TODO Auth: validate session ID
// Check whether to just validate current session ID
if (user === '' && pwd === '') {
console.log ("auth revalidate: " + req.session.user);
+84 -4
View File
@@ -131,14 +131,15 @@ const dbs = {
});
},
},
"tag": {
"tag/id": {
params: ":id",
/* GET /api/tag/[tag-id]
/* GET /api/tag/id/[tag-id]
* -> Tag schema
* Get a particular tag
*/
get: function(req, res) {
model.Tags.findById(req.params.id) .exec(function(err, result) {
model.Tags.findById(req.params.id)
.exec(function(err, result) {
if (err) {
console.log (err);
res.status(404).json(err);
@@ -149,6 +150,85 @@ const dbs = {
});
},
},
"usr/id": {
params: ":id",
/* GET /api/usr/[usr-id]
* -> User Schema
* Get a particular user
*/
get: function(req, res) {
model.Users.findById(req.params.id)
.exec(function(err, result) {
if (err) {
console.log(err);
res.status(404).json(err);
} else {
//console.log(JSON.stringify(result));
res.json(result);
}
});
},
},
"usr": {
/* POST /api/usr
* <- User schema
* -> User schema
* Create a new user
*/
post: function(req, res) {
model.User.create({
_id: req.body.id,
name: req.body.name,
type: req.body.type,
roles: req.body.roles,
hash: req.body.hash,
salt: req.body.salt,
pwd: req.body.pwd,
abos: req.body.abos,
bookmarks: req.body.bookmarks,
}, function(err, result) {
if (err) {
console.log (err);
return res.status(401).json(err.message);
} else {
res.json({message: "User created!!"});
}
if (result == null) {
return res.status(500).json("Can not create user.")
}
});
},
/* PUT /api/usr
* <- User schema
* -> User schema
* Change a user
*/
put: function(req, res) {
model.Users.findById(reg.body._id)
.exec(function(err, entry) {
if (err)
console.log (err);
if (entry == null)
return res.status(404).json(err.message);
// TODO Catch edge cases
entry.save(function(err, data) {
// TODO Save/Update user
/*
_id: req.body.id,
name: req.body.name,
type: req.body.type,
roles: req.body.roles,
hash: req.body.hash,
salt: req.body.salt,
pwd: req.body.pwd,
abos: req.body.abos,
bookmarks: req.body.bookmarks,
*/
res.json(data);
});
});
},
},
},
/* Initialize requirements
* - DB connection
@@ -210,7 +290,7 @@ const dbs = {
type: { type: String },
roles: { type: [String], required: true,
_comment: "" },
tags: { type: [String],
abos: { type: [String],
_comment: "" },
//deactivated: { type: Boolean },
//host: { type: Boolean },
+6 -3
View File
@@ -7,7 +7,7 @@ const ldap = require('ldapjs');
const ldap_escape = require('ldap-escape');
// TODO: Where do I get the URL from?? A: Is given.
// NOTE: Where do I get the URL from?? A: Is given.
var ldap_client = ldap.createClient({
//url: 'ldap://gso2.ads1.fh-nuernberg.de/',
url: 'ldap://sso.cs.ohm-hochschule.de:389/',
@@ -16,7 +16,7 @@ var ldap_client = ldap.createClient({
// timeouts don't work reliably
});
// TODO: Where do I get the 'bindpath' parameters info from? A: Is given.
// NOTE: Where do I get the 'bindpath' parameters info from? A: Is given.
const ldap_config = {
bindpath: 'cn=Users,dc=ohm-hochschule,dc=de',
timeout: 2000
@@ -89,14 +89,17 @@ const ldap_ohm = {
console.log("ldap search error after bind for user " + user);
return cb (null);
}
// ldap_test output
// return_object = entry.object;
return cb (return_object);
});
res.on('error', function(err) {
console.log('ldap error: ' + err.message);
});
res.on('end', function(result) {
// TODO: Did we forget something?
// TODO: analyze result.status?
// console.info('ldap result: ');
// console.info(result);
});
});
});
-35
View File
@@ -1,35 +0,0 @@
// Terminal call: node server/ldap_test.js - needs VPN or eduroam
const inquirer = require('inquirer'),
ldap = require('./ldap_ohm.js');
inquirer.prompt([
{
name: 'username',
type: 'input',
message: 'Enter your VirtuOhm username:',
validate: function( value ) {
if (value.length) {
return true;
} else {
return 'Please enter your username.';
}
}
},
{
name: 'password',
type: 'password',
message: 'Enter your password:',
validate: function(value) {
if (value.length) {
return true;
} else {
return 'Please enter your password.';
}
}
}])
.then(answers => {
ldap.init(null);
ldap.authorize(answers.username,answers.password,function(user) {
console.log(JSON.stringify(user));
});
});