User edit renberakva

This commit is contained in:
Vincze József 2024-01-22 13:53:05 +01:00
parent 844ec27281
commit 53408ba354
3 changed files with 99 additions and 16 deletions

View File

@ -105,7 +105,7 @@ const UserSchema = mongoose.Schema({
} }
}, },
canDownload:{ canDownload:{
type: String, type: Boolean,
default: false, default: false,
required: true required: true
}, },

View File

@ -7,6 +7,8 @@ const checkUserAdmin3 = require('../js/helperFuncs');
let User = require('../models/user'); let User = require('../models/user');
var utils = require('../js/utils'); var utils = require('../js/utils');
var nodemailer = require('nodemailer'); var nodemailer = require('nodemailer');
var generator = require('generate-password');
const emailFelado='klportal@outlook.com';
String.prototype.replaceAt=function(index, replacement) { String.prototype.replaceAt=function(index, replacement) {
return this.substr(0, index) + replacement+ this.substr(index + replacement.length); return this.substr(0, index) + replacement+ this.substr(index + replacement.length);
} }
@ -25,7 +27,26 @@ var transporter = nodemailer.createTransport({
pass: 'IoSn1Pb1' pass: 'IoSn1Pb1'
} }
}); });
// Regisztrációs email kiküldése
function sendEmailNewPasswordNotify(user,visiblePassword)
{
var mailOptions = {
from: emailFelado,//'munkanyilvantarto@klelectro.hu',//'szamlaertesito@gmail.com',
to: user.email,
subject: 'Munkanyílvántartó új jelszó.',
text: 'That was easy!'
};
mailOptions.text='Tisztelt '+user.name+'!\nÖn új jelszót kapott.\n\nBelépési adatok:\nWeblap: www.iotechnic.eu\nFelhasználó név: '+user.username+'\nJelszó: '+visiblePassword+'\n';
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
}
function sendEmailRegisterNotify(username,pwd,email) function sendEmailRegisterNotify(username,pwd,email)
{ {
@ -165,6 +186,48 @@ router.get('/user_edit/:id', utils.ensureAuthenticated,function(req, res){
}); });
// New Api key
router.get('/newPassword/:id', utils.ensureAuthenticated,function (req, res) {
//calling.aFunction();
let user={};
var password = generator.generate({
length: 10,
numbers: true,
symbols: true,
});
bcrypt.genSalt(10, function(err, salt){
bcrypt.hash(password, salt, function(err, hash){
if(err){
console.log(err);
res.send({'result': 'error'});
}
else
{
user.password=hash;
let query = {_id:req.params.id}
User.findOneAndUpdate(query,user,{ returnNewDocument: true },function(err,document){
if(err){
console.log(err);
res.send({'result': 'error'});
}else{
sendEmailNewPasswordNotify(document,password)
//console.log(document.name);
res.send({'result': 'success'});
}
});
}
});
});
});
// Register Proccess // Register Proccess
router.post('/user_edit/:id', function(req, res){ router.post('/user_edit/:id', function(req, res){
let user={}; let user={};
@ -186,15 +249,15 @@ router.post('/user_edit/:id', function(req, res){
} else { } else {
let query = {_id:req.user._id} let query = {_id:req.user._id}
var oldpass=req.body.passwordOld; //var oldpass=req.body.passwordOld;
console.log("Current User:"); console.log("Current User:");
console.log(req.user); console.log(req.user);
console.log(oldpass); // console.log(oldpass);
User.findById(req.params.id,function(err,eUser){ // eUser=aki adatait szerkesztjük User.findById(req.params.id,function(err,eUser){ // eUser=aki adatait szerkesztjük
query = {_id:eUser._id} query = {_id:eUser._id}
eUser.comparePassword(oldpass, function(err, isMatch) { // eUser.comparePassword(oldpass, function(err, isMatch) {
//req.user.comparePassword(oldpass, function(err, isMatch) { //req.user.comparePassword(oldpass, function(err, isMatch) {
if (isMatch) { // if (isMatch) {
eUser.name = req.body.name; eUser.name = req.body.name;
eUser.email = req.body.email; eUser.email = req.body.email;
@ -228,7 +291,7 @@ router.post('/user_edit/:id', function(req, res){
console.log(err); console.log(err);
} }
eUser.password = hash; eUser.password = hash;
User.update(query, eUser, function(err){ User.updateOne(query, eUser, function(err){
if(err){ if(err){
req.flash('success','Felhasználói adatok módosítása sikertelen'); req.flash('success','Felhasználói adatok módosítása sikertelen');
console.log(err); console.log(err);
@ -246,7 +309,7 @@ router.post('/user_edit/:id', function(req, res){
else else
{ {
User.update(query, eUser, function(err){ User.updateOne(query, eUser, function(err){
if(err){ if(err){
req.flash('success','Felhasználói adatok módosítása sikertelen'); req.flash('success','Felhasználói adatok módosítása sikertelen');
console.log(err); console.log(err);
@ -258,12 +321,12 @@ router.post('/user_edit/:id', function(req, res){
} }
}); });
} }
} else { /* } else {
req.flash('error','Hejtelen régi jelszót adott meg'); req.flash('error','Hejtelen régi jelszót adott meg');
res.redirect('/users/user_edit/'+eUser._id); res.redirect('/users/user_edit/'+eUser._id);
console.log('Incorrect password.' ); console.log('Incorrect password.' );
} }*/
}); // });
}); });
} }

View File

@ -2,6 +2,7 @@ extends layout
block content block content
h1 Felhasználói adatok módisítása h1 Felhasználói adatok módisítása
label(id='uid', style='display:none;') #{user._id}
form(method='POST', action='/users/user_edit/'+user._id) form(method='POST', action='/users/user_edit/'+user._id)
#form-group #form-group
label Teljes név: label Teljes név:
@ -19,7 +20,7 @@ block content
label Jelszó újra: label Jelszó újra:
input.form-control(name='password2',type='password', value= user.password) input.form-control(name='password2',type='password', value= user.password)
br br
#form-group //-#form-group
label Régi jelszó: label Régi jelszó:
input.form-control(name='passwordOld',type='password') input.form-control(name='passwordOld',type='password')
br br
@ -37,10 +38,10 @@ block content
.container-fluid(style='border:1px solid #cecece;radius:5px;') .container-fluid(style='border:1px solid #cecece;radius:5px;')
.row .row
.col-md-3 .col-md-3
input#defaultCheck2.form-check-input(name='chkIsadmin',type='checkbox', checked=user.isAdmin) input#defaultCheck0.form-check-input(name='chkIsadmin',type='checkbox', checked=user.isAdmin)
|  Adminisztrátor |  Adminisztrátor
.col-md-3 .col-md-3
input#defaultCheck2.form-check-input(name='chkIsEmployee',type='checkbox', checked=user.isEmployee) input#defaultCheck1.form-check-input(name='chkIsEmployee',type='checkbox', checked=user.isEmployee)
|  Munkavállaló |  Munkavállaló
.row .row
.col-md-3 .col-md-3
@ -79,12 +80,12 @@ block content
input#defaultCheck11.form-check-input(name='chk_DeleteDevice',type='checkbox', checked=user.canDelete.device) input#defaultCheck11.form-check-input(name='chk_DeleteDevice',type='checkbox', checked=user.canDelete.device)
|  Törölhet berendezést |  Törölhet berendezést
br br
input#defaultCheck12.form-check-input(name='chk_DownloadFiles',type='checkbox', checked=user.canDelete.files) input#defaultCheck12.form-check-input(name='chk_DeleteFiles',type='checkbox', checked=user.canDelete.files)
|  Törölhet fájlokat |  Törölhet fájlokat
br br
.col-md-2 .col-md-2
h4 Letöltés h4 Letöltés
input#defaultCheck13.form-check-input(name='chk_DeleteFiles',type='checkbox', checked=user.canDownload) input#defaultCheck13.form-check-input(name='chk_DownloadFiles',type='checkbox', checked=user.canDownload)
|  Letölthet fájlokat |  Letölthet fájlokat
br br
.col-md-2 .col-md-2
@ -99,6 +100,25 @@ block content
|  Ügyfélkezelés |  Ügyfélkezelés
br br
hr hr
a.btn.btn-warning(href='#',id='newPassword',name='newPassword') Új Jelszó küldése
|    
input.btn.btn-primary(type='submit',value='Mentés') input.btn.btn-primary(type='submit',value='Mentés')
|     |    
a.btn.btn-success(href='/users') Vissza a.btn.btn-success(href='/users') Vissza
script(type='text/javascript', src='/bower_components/jquery/dist/jquery.min.js')
script.
$(document).ready(function () {
var uid=document.getElementById('uid').textContent;
$('#newPassword').click(function () {
$.get('/users/newPassword/'+uid, function(result) {
if (result.result==='error'){
alert("Új Jelszó generálása sikertelen!"); // display string message
}
else
if (result.result==='success'){
alert("Új Jelszó sikeresen generálva és elküldve a felhasználónak."); // display string message
}
});
});
})