diff --git a/client/views/admin/usuarios.ejs b/client/views/admin/usuarios.ejs new file mode 100644 index 0000000000000000000000000000000000000000..04dc7bf6962fee8b7288445858e5064fd246bb30 --- /dev/null +++ b/client/views/admin/usuarios.ejs @@ -0,0 +1,80 @@ + + + <% include ../partials/head %> + + <% include ../partials/admin-header %> +
+ <% if (message.length > 0) { %> + <% if (message.length > 0) { %> +
<%= message %>
+ <% } %> + <% if (message == "successDelete") { %> + + <% } %> + <% if (message == "successSave") { %> + + <% } %> + <% if (message == "errorSave") { %> + + <% } %> + <% if (message == "successEdit") { %> + + <% } %> + <% } %> +
+ +
+
+ <% include ../partials/footer %> + + + diff --git a/libs/app.js b/libs/app.js index 25e307fb031aa1b2c85c7da2fddac3a851756544..a1d85e2abb173651bf6b1526611f6516df90ff4f 100644 --- a/libs/app.js +++ b/libs/app.js @@ -20,6 +20,7 @@ var rotas = require('./routes/routes') var admin = require('./routes/admin/admin') var materias = require('./routes/admin/materias') var professores = require('./routes/admin/professores') +var usuarios = require('./routes/admin/usuarios') var api = require('./routes/api/api') var usuariosRest = require('./routes/api/usuarios') @@ -50,6 +51,7 @@ app.use('/', rotas) app.use('/admin', admin) app.use('/admin/materias', materias) app.use('/admin/professores', professores) +app.use('/admin/usuarios', usuarios) // Pasta pública onde ficam os uploads app.use('/uploads', express.static('uploads')) diff --git a/libs/routes/admin/usuarios.js b/libs/routes/admin/usuarios.js new file mode 100644 index 0000000000000000000000000000000000000000..65cda87a93785a9e2dda91c8858504e042692ad3 --- /dev/null +++ b/libs/routes/admin/usuarios.js @@ -0,0 +1,74 @@ +var express = require('express') +var passport = require('passport') +var router = express.Router() + +var libs = process.cwd() + '/libs/' + +var role = require(libs + 'role') +var Usuario = require(libs + 'model/usuario') + +router.use(role.isLoggedIn()) + +router.get('/', function(req, res) { + Usuario.find() + .sort([['nome', 'ascending']]) + .exec(function(err, usuarios) { + if(!err) { + return res.render('admin/usuarios', {user: req.user, usuarios: usuarios, message: req.flash('usuariosMessage')}) + } + }) +}) + +router.get('/:id', function(req, res) { + Usuario.findById(req.params.id, function(err, usuario) { + if(!usuario) { + // TODO: redirecionar para 404 + res.redirect('/') + } + + if(!err) { + res.render('admin/usuarioDetails', {user: req.user, usuario: usuario, message: req.flash('professorDetailsMessage')}) + } else { + // TODO: redirecionar para 500 + res.redirect('/') + } + }) +}) + +router.post('/:id', function(req, res) { + Usuario.findById(req.params.id, function(err, usuario) { + if(!usuario) { + // TODO: redirecionar para 404 + res.redirect('/admin/usuario/'+req.params.id) + } + + usuario.nome = req.body.nome + usuario.username = req.body.username + usuario.email = req.body.email + usuario.admin = req.body.admin + usuario.moderador = req.body.moderador + + usuario.save(function(err) { + if(!err) { + req.flash('usuariosMessage', 'successEdit') + res.redirect('/admin/usuarios') + } else { + // TODO: redirecionar para 500 + res.redirect('/') + } + }) + }) +}) + +router.get('/delete/:id', function(req, res) { + Usuario.findByIdAndRemove(req.params.id, function(err, usuario) { + if(!usuario) { + // TODO: redirecionar para 500 + res.redirect('/') + } + req.flash('usuariosMessage', 'successDelete') + res.redirect('/admin/usuarios') + }) +}) + +module.exports = router