%PDF- %PDF-
Direktori : /home/opti/workflow/src/routes/ |
Current File : /home/opti/workflow/src/routes/roles.js |
var express = require('express'); var router = express.Router(); var secured = require('../middleware/login'); var guard = require('connect-ensure-login'); var con = require('../../config'); var db = require('../models'); router.get('/', guard.ensureLoggedIn(), async (req, res, next) => { var user = req.user; const roles = await db.Role.findAll({ where: { orgId: user.orgId } }); res.render('role/index', { title: 'Role Management', roles, user: user }); }); router.post('/', guard.ensureLoggedIn(), async (req, res, next) => { db.Role.findOrCreate({ where: { name: req.body.name, description: req.body.description, createdBy: req.user.id, orgId: req.user.orgId } }) .spread((role, created) => { if (created == false) { req.flash('welcome'); res.redirect('back'); } else { req.flash('welcome'); res.redirect('back'); } }); }); router.post('/update/role', guard.ensureLoggedIn(), async (req, res, next) => { const role = await db.Role.findOne({ where: { orgId: req.user.orgId, id: req.body.roleId } }); if (role !== null) { role.update({name: req.body.name, description: req.body.description}); req.flash('Role updated successfully'); res.redirect('back'); } else { req.flash('role don\'t exist'); res.redirect('back'); } }); router.post('/delete/role', guard.ensureLoggedIn(), async (req, res) => { await db.Role.destroy({ where: { orgId: req.user.orgId, id: req.body.id } }); res.send('success'); }); router.get('/modules', guard.ensureLoggedIn(), async (req, res, next) => { var user = req.user; const modules = await db.Module.findAll({orgId:user.orgId}); res.render('role/module', { title: 'Module Management', modules, user: user, script: "roleList" }); }); router.post('/module', guard.ensureLoggedIn(), async (req, res, next) => { db.Module.findOrCreate({ where: { name: req.body.name, orgId:user.orgId } }) .spread((module, created) => { if (created == false) { req.flash('welcome'); res.redirect('back'); } else { req.flash('welcome'); res.redirect('back'); } }); }); router.post('/update/module', guard.ensureLoggedIn(), async (req, res, next) => { const module = await db.Module.findOne({ where: { id: req.body.moduleId } }); if (module !== null) { module.update({ name: req.body.name }); req.flash('Module updated successfully'); res.redirect('back'); } else { req.flash('Module don\'t exist'); res.redirect('back'); } }); router.post('/delete/module', guard.ensureLoggedIn(), async (req, res) => { await db.Module.destroy({ where: { id: req.body.id } }); res.send('success'); }); router.post('/update/userrole', guard.ensureLoggedIn(), async (req, res, next) => { const userrole = await UserRole.findOne({ where: { id: req.body.userRoleId } }); if (userrole !== null) { userrole.update({ roleId: req.body.role, userId: req.body.user }); req.flash('User Role updated successfully'); res.redirect('back'); } else { req.flash('User Role don\'t exist'); res.redirect('back'); } }); router.post('/delete/userrole', guard.ensureLoggedIn(), async (req, res) => { await UserRole.destroy({ where: { id: req.body.id } }); res.send('success'); }); // router.get('/rights/:roleId', function (req, res, next) { router.get('/rights', guard.ensureLoggedIn(), async (req, res, next) => { var user = req.user; db.Role.findAll({ where: { orgId: user.orgId } }).then(function (roles) { db.Module.findAll().then(function (modules) { res.render('role/right', { title: 'Roles Right', roleId: req.params.roleId, modules, roles, user: user, script: "roleList" }); }); }); }); router.get('/get/rights', guard.ensureLoggedIn(), async (req, res, next) => { db.RolesRight.findAll({ where: { orgId: req.user.orgId, roleId: req.params.roleId } }) .then((rolesright) => { db.Module.findAll() .then(function (modules) { for (var j = 0; j < rolesright.length; j++) { modules = modules.filter((obj) => { return obj.id !== rolesright[j].moduleId; }); } res.json(modules); }).catch(err => { console.log(err); }); }).catch(err => { console.log(err); }); }); router.post('/rights', guard.ensureLoggedIn(), async (req, res, next) => { const data = req.body; console.log(data); if (data.canCreate === 'false') { data.canCreate = false; } else { data.canCreate = true; } if (data.canEdit === 'false') { data.canEdit = false; } else { data.canEdit = true; } if (data.canView === 'false') { data.canView = false; } else { data.canView = true; } if (data.canDelete === 'false') { data.canDelete = false; } else { data.canDelete = true; } db.RolesRight.findOne({ where: { orgId: req.user.orgId, roleId: data.roleId, moduleId: data.moduleId } }) .then(result => { console.log(result, 'result'); // return false; if (result != null) { const updateRole = { canCreate: data.canCreate, canEdit: data.canEdit, canView: data.canView, canDelete: data.canDelete } db.RolesRight.update(updateRole, { where: { orgId: req.user.orgId, roleId: result.roleId, moduleId: result.moduleId } }) .then(result2 => { console.log(result2); }); } else { db.RolesRight.create({ orgId: req.user.orgId, roleId: data.roleId, moduleId: data.moduleId, canCreate: data.canCreate, canEdit: data.canEdit, canView: data.canView, canDelete: data.canDelete }) .then(newCreate => { if (!newCreate) { console.log('err'); } else { req.flash('welcome'); res.redirect('back'); } }); } }).catch(err => { console.log(err); }); }); router.get('/user/role', guard.ensureLoggedIn(), async (req, res, next) => { var user = req.user; const users = await db.User.findAll({ where: { orgId: req.user.orgId } }); const roles = await db.Role.findAll({ where: { orgId: req.user.orgId } }); const userroles = await db.UserRole.findAll({ where: { orgId: req.user.orgId }, include: [{ all: true, nested: true }] }); res.render('role/userRole', { title: 'Roles Right', users, roles, userroles, user: user }); }); router.post('/user/role', guard.ensureLoggedIn(), async (req, res, next) => { db.UserRole.findOrCreate({ where: { userId: req.body.user, roleId: req.body.role, orgId: req.user.orgId } }) .spread((userrole, created) => { console.log(userrole, 'userrole'); if (created == false) { req.flash('welcome'); res.redirect('back'); } else { req.flash('welcome'); res.redirect('back'); } }); }); router.get('/rights/:roleId', guard.ensureLoggedIn(), async (req, res, next) => { var user = req.user; db.RolesRight.findAll({ where: { orgId: req.user.orgId, roleId: req.params.roleId } }) .then((rolesright) => { db.Module.findAll() .then(function (modules) { for (var j = 0; j < rolesright.length; j++) { modules = modules.filter((obj) => { return obj.id !== rolesright[j].moduleId; }); } res.render('role/right', { title: 'Roles Right', roleId: req.params.roleId, modules, user: user, script: "roleList" }); }); }); }); router.post('/get/role/right', guard.ensureLoggedIn(), async (req, res, next) => { var user = req.user; const rolesright = await db.RolesRight.findAll({ where: { orgId: req.user.orgId, roleId: req.body.roleId } }); if(rolesright){ res.json(rolesright); } }); module.exports = router;