neue Version mit Suche nach User

This commit is contained in:
thomasmack 2022-02-11 19:31:15 +01:00
parent 64a78f2941
commit 3db7d0d0f0
11 changed files with 3600 additions and 6278 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
node_modules
.idea

41
app.js
View File

@ -3,7 +3,6 @@ var express = require('express');
var path = require('path');
var logger = require('morgan');
var cors = require('cors');
var sassMiddleware = require('node-sass-middleware');
var xml = require('xml');
@ -18,14 +17,9 @@ const dbhog = require('./dbhog')
const PORT = process.env.PORT || 4000;
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var valuelistRouter = require('./routes/valuelist');
var recepieRouter = require('./routes/recepie');
var personRouter = require('./routes/v1/person');
var schuelerRouter = require('./routes/v1/schueler');
var schuljahrRouter = require('./routes/v1/schuljahr');
var punkteRouter = require('./routes/v1/punkte');
var hausRouter = require('./routes/v1/haus');
var userRouter = require('./routes/users');
var app = express();
@ -40,27 +34,9 @@ var corsOptions = {
}
app.use(cors(corsOptions));
// Setting up passport
/*passport.use(
new LocalStrategy(
function(username, password, done) {
}
);
);
*/
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(sassMiddleware({
src: path.join(__dirname, 'public'),
dest: path.join(__dirname, 'public'),
indentedSyntax: true, // true = .sass and false = .scss
sourceMap: true
}));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', (req, res, next ) => {
@ -68,23 +44,10 @@ app.use('/', (req, res, next ) => {
next();
})
app.use('/api/v1', (req, res, next ) => {
req.db = dbhog;
next();
})
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/wl', valuelistRouter);
app.use('/recepies', recepieRouter);
app.use('/api/v1/person', personRouter);
app.use('/api/v1/schueler', schuelerRouter);
app.use('/api/v1/schuljahr', schuljahrRouter);
app.use('/api/v1/punkte', punkteRouter);
app.use('/api/v1/haus', hausRouter);
app.use('/users', userRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));

9713
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -8,33 +8,16 @@
"start": "node ./bin/www"
},
"dependencies": {
"bcrypt": "^3.0.3",
"body-parser": "^1.18.3",
"connect-pg-simple": "^5.0.0",
"cors": "^2.8.5",
"debug": "~2.6.9",
"express": "~4.16.0",
"express-session": "^1.15.6",
"http-errors": "~1.6.2",
"morgan": "~1.9.0",
"node-sass-middleware": "0.11.0",
"passport-local": "^1.0.0",
"pg": "^7.7.1",
"pug": "2.0.0-beta11",
"rand-token": "^0.4.0",
"react": "^16.7.0",
"react-dom": "^15.6.1",
"react-router-dom": "^4.2.2",
"whatwg-fetch": "^3.0.0",
"debug": "^4.3.3",
"express": "^4.17.2",
"express-session": "^1.17.2",
"http-errors": "^2.0.0",
"morgan": "^1.10.0",
"nodemon": "^2.0.15",
"pg": "^8.7.3",
"pug": "^3.0.2",
"rand-token": "^1.0.1",
"xml": "^1.0.1"
},
"devDependencies": {
"babel": "^6.23.0",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"webpack": "^3.5.5"
}
}

View File

@ -3,7 +3,6 @@ const router = express.Router();
var cors = require('cors');
const bcrypt = require('bcrypt');
const randToken = require('rand-token');
const ingredientsRouter = require('./recepieIngredients');

View File

@ -1,7 +1,6 @@
const express = require('express');
const router = express.Router({mergeParams:true});
const bcrypt = require('bcrypt');
const randToken = require('rand-token');
const DEBUG = false;

View File

@ -1,7 +1,6 @@
const express = require('express');
const router = express.Router({mergeParams:true});
const bcrypt = require('bcrypt');
const randToken = require('rand-token');
const DEBUG = false;

View File

@ -1,7 +1,6 @@
const express = require('express');
const router = express.Router({mergeParams:true});
const bcrypt = require('bcrypt');
const randToken = require('rand-token');
const DEBUG = false;

View File

@ -1,7 +1,6 @@
const express = require('express');
const router = express.Router({mergeParams:true});
const bcrypt = require('bcrypt');
const randToken = require('rand-token');
const DEBUG = false;

View File

@ -1,7 +1,6 @@
const express = require('express');
const router = express.Router({mergeParams:true});
const bcrypt = require('bcrypt');
const randToken = require('rand-token');
const DEBUG = false;

View File

@ -1,8 +1,6 @@
const express = require('express');
const router = express.Router();
const bcrypt = require('bcrypt');
const DEBUG = false;
@ -39,7 +37,7 @@ router.get('/', function(req, res, next) {
router.post('/', function(req, res, next) {
let user = req.body.users[0];
bcrypt.hash(user.kennwort, 10, function(err, hash) {
let query = "INSERT INTO nutzer ( name, email, kennwort, beschreibung) "+
" VALUES ('"+user.name+"','"+user.email+"','"+hash+"','"+user.beschreibung+"')" +
" returning *";
@ -61,45 +59,10 @@ router.post('/', function(req, res, next) {
res.status(200).json(result);
}
});
});
});
router.put('/login', function(req, res, next) {
let username = req.body.username;
let password = req.body.password;
console.log(username);
let query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE email ilike $1";
if(DEBUG) console.log(query);
req.db.query(query, [username], (err, rs) => {
if (err) {
return next(err)
}
req.user = rs.rows[0];
console.log(req.user);
if(!req.user) return next(new Error);
console.log(req.user.kennwort);
bcrypt.compare(password, req.user.kennwort, function(err, checkResult) {
console.log(checkResult);
if(checkResult) {
console.log("Login erfolgreich")
req.login = true;
} else {
req.login = false;
console.log(err);
res.status(409).send("Passwd didn't match");
}
});
next();
})
});
/* Methods with id */
router.get('/:userId', function(req, res, next) {
let user = {};
@ -136,47 +99,6 @@ router.put('/:userId', function(req, res, next) {
});
});
router.put('/:userId/changepasswd', function(req, res, next) {
let user = req.body.users[0];
let oldPasswd = req.body.users[0]['oldPasswd'];
let newPasswd = req.body.users[0]['newPasswd'];
if(!oldPasswd || !newPasswd) {
return res.status(400).send("Wrong Params");
}
bcrypt.compare(oldPasswd, req.user.kennwort, function(err, checkResult) {
console.log("Compare: "+oldPasswd+" WITH "+req.user.kennwort+" Result:");
console.log(checkResult);
if(checkResult) {
bcrypt.hash(newPasswd, 10, function(err, hash) {
let query = "UPDATE nutzer set kennwort = '"+hash+"'"+
" WHERE id = "+req.userId +
" returning *";
req.db.query(query, (err, rs) => {
if (err){
next(err);
} else {
let result = {};
let user = {};
user['name'] = rs.rows[0].name;
user['email'] = rs.rows[0].email;
user['id'] = rs.rows[0].id;
user['beschreibung'] = rs.rows[0].beschreibung;
result['users'] = user;
console.log(result);
res.status(200).json(result);
}
});
});
} else {
console.log(err);
res.status(409).send("Old Passwd didn't match");
}
});
});