periodicjs.ext.asyncadmin
Version:
An authentication extension for periodicjs that uses passport to authenticate user sessions.
272 lines (240 loc) • 9.82 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: controller/admin_userroles.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: controller/admin_userroles.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>'use strict';
var merge = require('utils-merge'),
CoreUtilities,
CoreController,
appSettings,
mongoose,
adminPath,
Userrole,
Userprivilege,
logger;
var loadUACCounts = function (req, res, next) {
// req.controllerData = (req.controllerData) ? req.controllerData : {};
req.headers.loaduserrolecount = true; // loaditemcount
req.headers.loaduserprivilegecount = true; // loaditemcount
next();
};
var getRoleIdCount = function (req, res, next) {
if (req.controllerData && req.controllerData.userrole) {
res.send({
result: 'success',
data: {
doc: req.controllerData.userrole
}
});
}
else if (req.body.userroleid) {
next();
}
else {
Userrole.count({}, function (err, count) {
if (err) {
next(err);
}
else {
req.body.userroleid = count + 1;
next();
}
});
}
};
var getPrivilegeIdCount = function (req, res, next) {
if (req.controllerData && req.controllerData.userprivilege) {
res.send({
result: 'success',
data: {
doc: req.controllerData.userprivilege
}
});
}
else if (req.body.userprivilegeid) {
next();
}
else {
Userprivilege.count({}, function (err, count) {
if (err) {
next(err);
}
else {
req.body.userprivilegeid = count + 1;
next();
}
});
}
};
/**
* manage user role section
* @param {object} req
* @param {object} res
* @return {object} reponds with an error page or requested view
*/
var index = function (req, res) {
// console.log('req.controllerData', req.controllerData);
var viewtemplate = {
viewname: 'p-admin/userroles/index',
themefileext: appSettings.templatefileextension,
extname: 'periodicjs.ext.asyncadmin'
},
viewdata = merge(req.controllerData, {
pagedata: {
title: 'Manage Users Roles',
toplink: '&raquo; <a href="/' + adminPath + '/userroles" class="async-admin-ajax-link">User Roles</a>',
extensions: CoreUtilities.getAdminMenu()
},
user: req.user
});
CoreController.renderView(req, res, viewtemplate, viewdata);
};
var userprivilege_index = function (req, res) {
// console.log('req.controllerData', req.controllerData);
var viewtemplate = {
viewname: 'p-admin/userroles/userprivilege_index',
themefileext: appSettings.templatefileextension,
extname: 'periodicjs.ext.asyncadmin'
},
viewdata = merge(req.controllerData, {
pagedata: {
title: 'Manage Users Privileges',
toplink: '&raquo; <a href="/' + adminPath + '/userprivileges" class="async-admin-ajax-link">User Privileges</a>',
extensions: CoreUtilities.getAdminMenu()
},
user: req.user
});
CoreController.renderView(req, res, viewtemplate, viewdata);
};
/**
* create a new usr role
* @param {object} req
* @param {object} res
* @return {object} reponds with an error page or requested view
*/
var userrole_new = function (req, res) {
var viewtemplate = {
viewname: 'p-admin/userroles/new',
themefileext: appSettings.templatefileextension,
extname: 'periodicjs.ext.asyncadmin'
},
viewdata = {
pagedata: {
title: 'New User Role',
toplink: '&raquo; <a href="/' + adminPath + '/userroles" class="async-admin-ajax-link">User Roles</a> &raquo; New User Role',
// headerjs: ['/extensions/periodicjs.ext.asyncadmin/js/useraccess.min.js'],
extensions: CoreUtilities.getAdminMenu()
},
userrole: null, //req.controllerData.userrole
user: req.user
};
CoreController.renderView(req, res, viewtemplate, viewdata);
};
/**
* show user role
* @param {object} req
* @param {object} res
* @return {object} reponds with an error page or requested view
*/
var show = function (req, res) {
var viewtemplate = {
viewname: 'p-admin/userroles/edit',
themefileext: appSettings.templatefileextension,
extname: 'periodicjs.ext.asyncadmin'
},
viewdata = {
pagedata: {
title: req.controllerData.userrole.title,
toplink: '&raquo; <a href="/' + adminPath + '/userroles" class="async-admin-ajax-link">User Roles</a> &raquo; ' + req.controllerData.userrole.title,
// headerjs: ['/extensions/periodicjs.ext.asyncadmin/js/useraccess.min.js'],
extensions: CoreUtilities.getAdminMenu()
},
userrole: req.controllerData.userrole, //req.controllerData.userrole
userprivileges: req.controllerData.userprivileges, //req.controllerData.userrole
user: req.user
};
CoreController.renderView(req, res, viewtemplate, viewdata);
};
var userprivilege_show = function (req, res) {
var viewtemplate = {
viewname: 'p-admin/userroles/userprivilege_edit',
themefileext: appSettings.templatefileextension,
extname: 'periodicjs.ext.asyncadmin'
},
viewdata = {
pagedata: {
title: req.controllerData.userprivilege.title,
toplink: '&raquo; <a href="/' + adminPath + '/userprivileges" class="async-admin-ajax-link">User Privileges</a> &raquo; ' + req.controllerData.userprivilege.title,
// headerjs: ['/extensions/periodicjs.ext.asyncadmin/js/useraccess.min.js'],
extensions: CoreUtilities.getAdminMenu()
},
userprivilege: req.controllerData.userprivilege, //req.controllerData.userrole
user: req.user
};
CoreController.renderView(req, res, viewtemplate, viewdata);
};
/**
* user role controller
* @module userroleController
* @{@link https://github.com/typesettin/periodicjs.ext.user_access_control}
* @author Yaw Joseph Etse
* @copyright Copyright (c) 2014 Typesettin. All rights reserved.
* @license MIT
* @requires module:periodicjs.core.utilities
* @requires module:periodicjs.core.controller
* @param {object} resources variable injection from current periodic instance with references to the active logger and mongo session
* @return {object} userlogin
*/
var controller = function (resources) {
logger = resources.logger;
mongoose = resources.mongoose;
appSettings = resources.settings;
CoreController = resources.core.controller;
CoreUtilities = resources.core.utilities;
Userrole = mongoose.model('Userrole');
Userprivilege = mongoose.model('Userprivilege');
// Usergroup = mongoose.model('Usergroup');
adminPath = resources.app.locals.adminPath;
return {
loadUACCounts: loadUACCounts,
getRoleIdCount: getRoleIdCount,
getPrivilegeIdCount: getPrivilegeIdCount,
index: index,
userprivilege_index: userprivilege_index,
userrole_new: userrole_new,
show: show,
userprivilege_show: userprivilege_show,
// update: update,
// remove: remove
};
};
module.exports = controller;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-authController.html">authController</a></li><li><a href="module-settingsController.html">settingsController</a></li><li><a href="module-userroleController.html">userroleController</a></li><li><a href="periodicjs.ext.module_admin.html">admin</a></li></ul><h3>Classes</h3><ul><li><a href="filterlist.html">filterlist</a></li><li><a href="sortlist.html">sortlist</a></li><li><a href="StylieTextEditor.html">StylieTextEditor</a></li><li><a href="tsdatalist.html">tsdatalist</a></li><li><a href="tsmedialist.html">tsmedialist</a></li><li><a href="tstagmanager.html">tstagmanager</a></li></ul><h3>Global</h3><ul><li><a href="global.html#get_edit_page">get_edit_page</a></li><li><a href="global.html#get_index_page">get_index_page</a></li><li><a href="global.html#get_new_page">get_new_page</a></li><li><a href="global.html#get_show_page">get_show_page</a></li><li><a href="global.html#getHomepageStats">getHomepageStats</a></li><li><a href="global.html#getMarkdownReleases">getMarkdownReleases</a></li><li><a href="global.html#index">index</a></li><li><a href="global.html#load_app_settings">load_app_settings</a></li><li><a href="global.html#load_extension_settings">load_extension_settings</a></li><li><a href="global.html#load_theme_settings">load_theme_settings</a></li><li><a href="global.html#restart_app">restart_app</a></li><li><a href="global.html#sendSettingEmail">sendSettingEmail</a></li><li><a href="global.html#settings_faq">settings_faq</a></li><li><a href="global.html#settings_index">settings_index</a></li><li><a href="global.html#show">show</a></li><li><a href="global.html#styleWindowResizeEventHandler">styleWindowResizeEventHandler</a></li><li><a href="global.html#update_app">update_app</a></li><li><a href="global.html#update_app_settings">update_app_settings</a></li><li><a href="global.html#update_config_json_files">update_config_json_files</a></li><li><a href="global.html#update_ext_filedata">update_ext_filedata</a></li><li><a href="global.html#update_theme_filedata">update_theme_filedata</a></li><li><a href="global.html#update_theme_settings">update_theme_settings</a></li><li><a href="global.html#userrole_new">userrole_new</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> on Wed Jun 15 2016 16:57:18 GMT-0400 (EDT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>