Commit 0ec38e0d authored by Alejandro E. Rendon's avatar Alejandro E. Rendon
Browse files

Cluster data

parent b9fb181a
const express = require('express');
const path = require('path');
const compression = require('compression');
const favicon = require('serve-favicon');
const logger = require('morgan');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const session = require('express-session');
const MongoStore = require('connect-mongo')(session);
const mongoose = require('mongoose');
const passport = require('passport');
const flash = require('connect-flash');
const methodOverride = require('method-override');
const config = require('./config/config');
const express = require('express'),
path = require('path'),
compression = require('compression'),
favicon = require('serve-favicon'),
logger = require('morgan'),
cookieParser = require('cookie-parser'),
bodyParser = require('body-parser'),
session = require('express-session'),
MongoStore = require('connect-mongo')(session),
mongoose = require('mongoose'),
passport = require('passport'),
flash = require('connect-flash'),
methodOverride = require('method-override'),
config = require('./config/config');
require('colors');
const index = require('./routes/index');
......@@ -33,16 +33,18 @@ app.db.on('open', function() {
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(session({
secret: 'secrettexthere',
saveUninitialized: true,
resave: true,
// using store session on MongoDB using express-session + connect
store: new MongoStore({
url: config.db.url,
collection: 'sessions',
}),
})); // session secret
app.use(
session({
secret: 'secrettexthere',
saveUninitialized: true,
resave: true,
// using store session on MongoDB using express-session + connect
store: new MongoStore({
url: config.db.url,
collection: 'sessions'
})
})
); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash());
......@@ -51,7 +53,7 @@ app.use(flash());
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
......@@ -78,7 +80,7 @@ if (app.get('env') === 'development') {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err,
error: err
});
});
}
......@@ -89,9 +91,8 @@ app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {},
error: {}
});
});
module.exports = app;
......@@ -4,10 +4,13 @@ const User = require('../models/user').User,
{ decrypt } = require('../config/crypto'),
nodemailer = require('nodemailer'),
{ auth } = require('../config/email'),
{ emailAdmin, linuxPass, getLinuxId, createUser } = require(
'../helpers/user'
);
// {getLinuxUsers} = require('../helpers/user'),
{
emailAdmin,
linuxPass,
getLinuxId,
createUser,
createUserCluster
} = require('../helpers/user');
exports.add = (req, res) => {
const id = req.params.id;
......@@ -100,13 +103,21 @@ exports.new = (req, res) => {
console.log(err);
res.redirect('/');
} else {
console.log('CREATED');
User.update({ username: id }, { state: user.state, uid: uid }, (
err,
data
) => {
if (err) console.log(err);
else res.redirect('/admin/users');
createUserCluster(uid, user, err => {
if (err) {
console.log(err);
res.redirect('/');
} else {
console.log('CREATED');
User.update(
{ username: id },
{ state: user.state, uid: uid },
(err, data) => {
if (err) console.log(err);
else res.redirect('/admin/users');
}
);
}
});
}
});
......
const User = require('../models/user').User,
{ decrypt } = require('../config/crypto'),
{ exec } = require('child_process');
{ exec } = require('child_process'),
config = require('../config/config'),
SSH = require('simple-ssh');
exports.emailAdmin = callback => {
User.find({ state: 1 }, (err, users) => {
......@@ -87,28 +89,24 @@ exports.createUser = (uid, user, callback) => {
' | sudo chpasswd';
exec(passPath, (err, stdout, stderr) => {
if (err) return callback(err);
else if (stderr) return callback(stderr);
else return callback(null);
if (err)
return callback(err);
else if (stderr)
return callback(stderr);
else {
return callback(null);
}
});
}
});
};
exports.linuxPass = (user, callback) => {
const passPath = 'echo ' + user.user + ':' + user.pass + ' | sudo chpasswd';
exports.createUserCluster = (uid, username, callback) => {
const { user, password, nodes } = config.cluster;
console.log(passPath);
for (node in nodes) {
console.log(nodes[node]);
}
exec(passPath, (err, stdout, stderr) => {
console.log('hola');
if (err)
return callback(err);
else if (stderr)
return callback(stderr);
else {
console.log('Cambio de pass');
return callback(null);
}
});
return callback(null);
};
......@@ -43,6 +43,15 @@
<%# <a class="ui compact icon button" data-content="Importar desde SO" href="/admin/users/linux"><i class="linux icon"></i></a>%>
</div>
</div>
<div class="ui main center aligned text container">
<div class="ui icon buttons">
<a class="ui icon button"><i class="caret left icon"></i></a>
<% for (let i = 1; i <= Math.ceil((users.length) / 4); i++) { %>
<a class="ui button" href="/admin/users/<%= i %>"><%= i %></a>
<% } %>
<a class="ui icon button"><i class="caret right icon"></i></a>
</div>
</div>
<div class="ui main text container">
<div class="ui centered cards">
<% for (var userbd in users) { %>
......@@ -84,8 +93,7 @@
<% } %>
<a class="ui icon button" href="/user/edit/<%= users[userbd].username %>"><i class="write icon"></i></a>
<% if (users[userbd].state === 1) { %>
<a class="ui icon button" href="/adm
in/remove/<%= users[userbd].username %>">Admin <i class="remove red icon"></i></a>
<a class="ui icon button" href="/admin/remove/<%= users[userbd].username %>">Admin <i class="remove red icon"></i></a>
<% } else if (users[userbd].state === 2) { %>
<a class="ui icon button" href="/admin/add/<%= users[userbd].username %>">Admin <i class="checkmark green icon"></i></a>
<% } %>
......
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