%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/workflow/src/routes/
Upload File :
Create Path :
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;

Zerion Mini Shell 1.0