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:{
type: String,
type: Boolean,
default: false,
required: true
},

View File

@ -7,6 +7,8 @@ const checkUserAdmin3 = require('../js/helperFuncs');
let User = require('../models/user');
var utils = require('../js/utils');
var nodemailer = require('nodemailer');
var generator = require('generate-password');
const emailFelado='klportal@outlook.com';
String.prototype.replaceAt=function(index, replacement) {
return this.substr(0, index) + replacement+ this.substr(index + replacement.length);
}
@ -25,7 +27,26 @@ var transporter = nodemailer.createTransport({
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)
{
@ -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
router.post('/user_edit/:id', function(req, res){
let user={};
@ -186,15 +249,15 @@ router.post('/user_edit/:id', function(req, res){
} else {
let query = {_id:req.user._id}
var oldpass=req.body.passwordOld;
//var oldpass=req.body.passwordOld;
console.log("Current User:");
console.log(req.user);
console.log(oldpass);
// console.log(oldpass);
User.findById(req.params.id,function(err,eUser){ // eUser=aki adatait szerkesztjük
query = {_id:eUser._id}
eUser.comparePassword(oldpass, function(err, isMatch) {
// eUser.comparePassword(oldpass, function(err, isMatch) {
//req.user.comparePassword(oldpass, function(err, isMatch) {
if (isMatch) {
// if (isMatch) {
eUser.name = req.body.name;
eUser.email = req.body.email;
@ -228,7 +291,7 @@ router.post('/user_edit/:id', function(req, res){
console.log(err);
}
eUser.password = hash;
User.update(query, eUser, function(err){
User.updateOne(query, eUser, function(err){
if(err){
req.flash('success','Felhasználói adatok módosítása sikertelen');
console.log(err);
@ -246,7 +309,7 @@ router.post('/user_edit/:id', function(req, res){
else
{
User.update(query, eUser, function(err){
User.updateOne(query, eUser, function(err){
if(err){
req.flash('success','Felhasználói adatok módosítása sikertelen');
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');
res.redirect('/users/user_edit/'+eUser._id);
console.log('Incorrect password.' );
}
});
}*/
// });
});
}

View File

@ -2,6 +2,7 @@ extends layout
block content
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-group
label Teljes név:
@ -19,7 +20,7 @@ block content
label Jelszó újra:
input.form-control(name='password2',type='password', value= user.password)
br
#form-group
//-#form-group
label Régi jelszó:
input.form-control(name='passwordOld',type='password')
br
@ -37,10 +38,10 @@ block content
.container-fluid(style='border:1px solid #cecece;radius:5px;')
.row
.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
.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ó
.row
.col-md-3
@ -79,12 +80,12 @@ block content
input#defaultCheck11.form-check-input(name='chk_DeleteDevice',type='checkbox', checked=user.canDelete.device)
|  Törölhet berendezést
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
br
.col-md-2
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
br
.col-md-2
@ -99,6 +100,25 @@ block content
|  Ügyfélkezelés
br
hr
a.btn.btn-warning(href='#',id='newPassword',name='newPassword') Új Jelszó küldése
|    
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
}
});
});
})