%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;