Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
lovelace
webLovelace
Commits
70fbc7a4
Commit
70fbc7a4
authored
Feb 17, 2017
by
Alejandro E. Rendon
Browse files
fixing add user
parent
dcabfcec
Changes
8
Hide whitespace changes
Inline
Side-by-side
controllers/admin.js
View file @
70fbc7a4
...
...
@@ -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
);
...
...
controllers/session.js
View file @
70fbc7a4
...
...
@@ -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
(
'
/
'
);
}
});
}
}
,
}
);
};
controllers/user.js
View file @
70fbc7a4
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
'
);
...
...
helpers/user.js
View file @
70fbc7a4
...
...
@@ -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';
...
...
models/attendance.js
View file @
70fbc7a4
...
...
@@ -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
);
...
...
models/user.js
View file @
70fbc7a4
...
...
@@ -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
)
{
...
...
routes/index.js
View file @
70fbc7a4
...
...
@@ -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);
...
...
views/admin/users.ejs
View file @
70fbc7a4
...
...
@@ -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)
{%
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment