Commit 70fbc7a4 authored by Alejandro E. Rendon's avatar Alejandro E. Rendon
Browse files

fixing add user

parent dcabfcec
......@@ -73,7 +73,7 @@ exports.getUsers = (req, res) => {
message: req.flash('editProfile'),
users: docs,
user: req.user,
conect: req.user,
conect: req.user
});
});
};
......@@ -87,33 +87,34 @@ exports.new = (req, res) => {
console.log(err);
res.redirect('/');
} else {
console.log(user);
user.state = 2;
console.log(user);
// res.redirect('/');
getLinuxId((err, uid) => {
if (err) {
console.log(err);
res.redirect('/admin/users/');
res.redirect('/');
} else {
User.update(
{ username: id },
{
state: user.state,
uid: uid,
uid: uid
},
(err, data) => {
if (err) {
console.log(err);
res.redirect('/admin/users/');
} else {
res.redirect('/');
} else {
res.redirect('/admin/users/');
}
},
}
);
}
});
}
});
res.redirect('/');
// res.redirect('/');
// res.redirect('/admin/users/newPass/' + id);
};
......@@ -217,7 +218,7 @@ exports.getActiveUsers = (req, res) => {
res.render('admin/users', {
users: docs,
user: req.user,
conect: req.user,
conect: req.user
});
});
};
......@@ -228,7 +229,7 @@ exports.getPendingUsers = (req, res) => {
res.render('admin/users', {
users: docs,
user: req.user,
conect: req.user,
conect: req.user
});
});
};
......@@ -239,7 +240,7 @@ exports.getInactiveUsers = function(req, res) {
res.render('admin/users', {
users: docs,
user: req.user,
conect: req.user,
conect: req.user
});
});
};
......@@ -260,7 +261,7 @@ exports.getUsersLinux = function(req, res) {
const user = new User({
username: linux[0],
name: linux[2].substring(0, linux[2].length - 3),
uid: linux[1],
uid: linux[1]
});
User.findOne({ uid: user.uid }, function(err, docs) {
......@@ -291,7 +292,7 @@ exports.Attendance = (req, res) => {
else
res.render('attendance/attendance', {
conect: req.user,
users: docs,
users: docs
});
// console.log(docs);
});
......@@ -307,7 +308,7 @@ exports.newAttendance = (req, res) => {
name: req.body.name,
last_name: req.body.last,
profession: req.body.profession,
email: req.body.email,
email: req.body.email
});
list.save(function(err) {
......@@ -324,7 +325,7 @@ exports.emailContact = (req, res) => {
console.log(err);
else {
const transporter = nodemailer.createTransport(
'smtps://' + auth.user + ':' + auth.pass + '@smtp.gmail.com',
'smtps://' + auth.user + ':' + auth.pass + '@smtp.gmail.com'
);
const mailOptions = {
......@@ -332,7 +333,7 @@ exports.emailContact = (req, res) => {
// to: 'alejorendon@utp.edu.co',
to: data,
subject: 'Contacto-Cluster Lovelace',
text: req.body.text,
text: req.body.text
};
transporter.sendMail(mailOptions, (err, res) => {
if (err) console.log(err);
......
......@@ -41,7 +41,7 @@ exports.newUser = function(req, res) {
User.findOne(
{
$or: [{ email: req.body.email }, { username: req.body.username }],
$or: [{ email: req.body.email }, { username: req.body.username }]
},
function(err, user) {
if (err) return done(err);
......@@ -51,12 +51,12 @@ exports.newUser = function(req, res) {
if (user.email === req.body.email)
req.flash(
'signupMessage',
'Existe un registro con el Correo Electrónico ingresado',
'Existe un registro con el Correo Electrónico ingresado'
);
if (user.username === req.body.username)
req.flash(
'signupMessage',
'Existe un registro con el Nombre de Usuario ingresado',
'Existe un registro con el Nombre de Usuario ingresado'
);
res.redirect('/signup');
} else if (req.body.password !== req.body.confirmPassword) {
......@@ -66,7 +66,6 @@ exports.newUser = function(req, res) {
res.redirect('/signup');
} else {
const newUser = new User();
newUser.state = state;
newUser.user_id = req.body.user_id;
newUser.username = req.body.username;
......@@ -78,9 +77,7 @@ exports.newUser = function(req, res) {
newUser.linux = encrypt(req.body.password);
newUser.connection = new Date();
newUser.text = req.body.text;
console.log(newUser);
newUser.save(function(err) {
if (err) {
console.log(err);
......@@ -92,39 +89,41 @@ exports.newUser = function(req, res) {
console.log(err);
else {
const transporter = nodemailer.createTransport(
'smtps://' + auth.user + ':' + auth.pass + '@smtp.gmail.com',
'smtps://' + auth.user + ':' + auth.pass + '@smtp.gmail.com'
);
const mailOptions = {
from: req.body.name +
' ' +
req.body.last_name +
' <' +
req.body.email +
'>',
to: data,
subject: 'Contacto-Cluster Lovelace',
// text: req.body.text,
html: 'Sr Admin, solicitud de cuenta pendiente: <br />' +
'<hr />' +
'<b>Username: </b>' +
req.body.username +
'<br />' +
'<b>Nombre: </b>' +
from: (
req.body.name +
' ' +
req.body.last_name +
'<br />' +
'<b>Código: </b>' +
req.body.user_id +
'<br />' +
'<b>Correo Electrónico: </b>' +
req.body.email +
'<br /><hr />' +
'<b>Justificación: </b><br />' +
'<i>' +
req.body.text +
'</i>',
' ' +
req.body.last_name +
' <' +
req.body.email +
'>'
),
to: data,
subject: 'Contacto-Cluster Lovelace', // text: req.body.text,
html: (
'Sr Admin, solicitud de cuenta pendiente: <br />' +
'<hr />' +
'<b>Username: </b>' +
req.body.username +
'<br />' +
'<b>Nombre: </b>' +
req.body.name +
' ' +
req.body.last_name +
'<br />' +
'<b>Código: </b>' +
req.body.user_id +
'<br />' +
'<b>Correo Electrónico: </b>' +
req.body.email +
'<br /><hr />' +
'<b>Justificación: </b><br />' +
'<i>' +
req.body.text +
'</i>'
)
};
transporter.sendMail(mailOptions, (err, res) => {
if (err) console.log(err);
......@@ -132,11 +131,10 @@ exports.newUser = function(req, res) {
});
}
});
res.redirect('/');
}
});
}
},
}
);
};
const { User } = require('../models/user');
const passport = require('passport');
const LocalStrategy = require('passport-local');
const multer = require('multer');
const { User } = require('../models/user'),
passport = require('passport'),
LocalStrategy = require('passport-local'),
multer = require('multer');
exports.index = (req, res) => {
// console.log(req.user);
res.render('user/profile', {
user: req.user,
conect: req.user,
message: req.flash('editProfile'),
message: req.flash('editProfile')
});
};
......@@ -84,10 +84,9 @@ exports.editPhotoUser = (req, res) => {
},
filename: (req, file, callback) => {
callback(null, file.fieldname + '-' + Date.now());
},
}
});
const upload = multer({ storage: storage }).single('userPhoto');
// upload(req, res, function(err) {
// if (err)
// return res.end('Error uploading file.');
......@@ -121,7 +120,7 @@ exports.saveEditUser = (req, res) => {
if (!err) {
req.flash(
'editProfile',
'Perfil de ' + req.params.id + ' editado con éxito',
'Perfil de ' + req.params.id + ' editado con éxito'
);
if (conect.state === 1)
res.redirect('/admin/users/');
......@@ -129,7 +128,7 @@ exports.saveEditUser = (req, res) => {
res.render('user/profile', {
user: user,
conect: user,
message: req.flash('editProfile'),
message: req.flash('editProfile')
});
} else
res.render('index');
......
......@@ -65,6 +65,25 @@ exports.getLinuxId = callback => {
});
};
exports.createUser = (uid, user, callbak) => {
const path = 'sudo adduser --home /homeshare/' +
user +
' --uid ' +
uid +
' --ingroup adm --ingroup cdrom --ingroup dip --ingroup plugdev --ingroup lpadmin --ingroup sambashare ' +
user;
exec(path, (err, stdout, stderr) => {
if (err) {
console.log(err);
res.redirect('/');
} else if (stderr) {
console.log(stderr);
res.redirect('/');
} else {
}
});
};
// exports.linuxPass = (user, callback) => {
// const passPath = 'echo ' + user.user + ':' +
// user.pass + ' | sudo chpasswd';
......
......@@ -5,26 +5,26 @@ const timestamps = require('mongoose-timestamp');
const listSchema = new Schema({
user_id: {
type: String,
require: true,
require: true
},
name: {
type: String,
require: true,
require: true
},
last_name: {
type: String,
require: true,
require: true
},
profession: {
type: String,
require: true,
require: true
},
email: {
type: String,
require: true,
default: '',
match: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
},
match: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
}
});
listSchema.plugin(timestamps);
......
......@@ -7,70 +7,70 @@ const userSchema = new Schema({
user_id: {
type: String,
require: true,
default: '0',
default: '0'
},
state: {
type: Number,
require: true,
default: 0, // 0 : pending, 1 : admin, 2 : user ok, 3 : user disabled
default: 0 // 0 : pending, 1 : admin, 2 : user ok, 3 : user disabled
},
uid: {
type: String,
require: true,
default: '0',
default: '0'
},
username: {
type: String,
require: true,
default: '',
default: ''
},
name: {
type: String,
require: true,
default: '',
default: ''
},
last_name: {
type: String,
require: true,
default: '',
default: ''
},
email: {
type: String,
require: true,
default: '',
default: ''
},
profession: {
type: String,
require: true,
default: '',
default: ''
},
photo: {
type: String,
default: '',
default: ''
},
password: {
type: String,
require: true,
default: '',
default: ''
},
linux: {
type: String,
require: true,
require: true
},
connection: {
type: Date,
require: true,
require: true
},
so: {
type: Number, // 0: NO, 1: SI
require: true,
default: 0,
default: 0
},
text: {
type: String,
require: true,
default: '',
},
default: ''
}
});
userSchema.methods.generateHash = function(password) {
......
......@@ -20,7 +20,7 @@ router.get('/login', function(req, res) {
res.render('user/login', {
user: req.user,
conect: req.user,
message: req.flash('loginMessage'),
message: req.flash('loginMessage')
});
});
......@@ -36,7 +36,7 @@ router.get('/signup', function(req, res) {
res.render('user/signup', {
user: req.user,
conect: req.user,
message: req.flash('signupMessage'),
message: req.flash('signupMessage')
});
});
......@@ -54,8 +54,8 @@ router.post(
passport.authenticate('local-login', {
successRedirect: '/user',
failureRedirect: '/login',
failureFlash: true,
}),
failureFlash: true
})
);
// router.get('/quizes', quizController.index);
......
......@@ -60,7 +60,7 @@
<a class="header" href="/user/<%= users[userbd].username %>"><%= users[userbd].name %> <%= users[userbd].last_name %></a>
<a class="meta" href="/user/<%= users[userbd].username %>"><%= users[userbd].username %></a>
<div class="meta">COD: <%= users[userbd].user_id %></div>
<!-- <div class="meta">UID: <%= users[userbd].uid %></div> -->
<div class="meta">UID: <%= users[userbd].uid %></div>
<div class="meta">email: <i><%= users[userbd].email %></i></div>
<div class="meta"><i><b><%= users[userbd].text %></b></i></div>
<div class="description">
......@@ -76,7 +76,7 @@
<div class="extra content">
<div class="ui three icon buttons">
<% if (users[userbd].state === 0) { %>
<!-- <a class="ui link green button" href="/admin/users/new/<%= users[userbd].username %>">Aprobar</a> -->
<a class="ui link green button" href="/admin/users/new/<%= users[userbd].username %>">Aprobar</a>
<% } else if (users[userbd].state === 1 || users[userbd].state === 2) { %>
<!-- <a class="ui red button" href="/admin/users/inactive/<%= users[userbd].username %>">Inactivar</a> -->
<% } else if (users[userbd].state === 3) {%>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment