mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-05-07 17:26:25 +02:00
feat(core): admin system control panel server sice routs, policy, controllers
This commit is contained in:
14
modules/systems/server/config/systems.server.config.js
Normal file
14
modules/systems/server/config/systems.server.config.js
Normal file
@@ -0,0 +1,14 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
var path = require('path'),
|
||||
config = require(path.resolve('./config/config'));
|
||||
|
||||
/**
|
||||
* Module init function.
|
||||
*/
|
||||
module.exports = function (app, db) {
|
||||
|
||||
};
|
||||
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
var path = require('path'),
|
||||
config = require(path.resolve('./config/config')),
|
||||
shell = require('shelljs'),
|
||||
moment = require('moment'),
|
||||
traceLogCreate = require(path.resolve('./config/lib/tracelog')).create,
|
||||
scoreUpdate = require(path.resolve('./config/lib/score')).update;
|
||||
|
||||
var traceConfig = config.meanTorrentConfig.trace;
|
||||
var appConfig = config.meanTorrentConfig.app;
|
||||
var mtDebug = require(path.resolve('./config/lib/debug'));
|
||||
var serverMessage = require(path.resolve('./config/lib/server-message'));
|
||||
var serverNoticeConfig = config.meanTorrentConfig.serverNotice;
|
||||
|
||||
/**
|
||||
* getSystemConfig
|
||||
* @param req
|
||||
* @param res
|
||||
*/
|
||||
exports.getSystemConfig = function (req, res) {
|
||||
var config = shell.cat(path.resolve('./config/env/torrents.js'));
|
||||
res.json({
|
||||
configContent: config
|
||||
});
|
||||
};
|
||||
45
modules/systems/server/policies/systems.server.policy.js
Normal file
45
modules/systems/server/policies/systems.server.policy.js
Normal file
@@ -0,0 +1,45 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
var acl = require('acl');
|
||||
|
||||
// Using the memory backend
|
||||
acl = new acl(new acl.memoryBackend());
|
||||
|
||||
/**
|
||||
* Invoke Articles Permissions
|
||||
*/
|
||||
exports.invokeRolesPolicies = function () {
|
||||
acl.allow([{
|
||||
roles: ['admin'],
|
||||
allows: [
|
||||
{resources: '/api/systems/systemConfig', permissions: '*'}
|
||||
]
|
||||
}]);
|
||||
};
|
||||
|
||||
/**
|
||||
* Check If Articles Policy Allows
|
||||
*/
|
||||
exports.isAllowed = function (req, res, next) {
|
||||
var roles = (req.user) ? req.user.roles : ['guest'];
|
||||
|
||||
// Check for user roles
|
||||
acl.areAnyRolesAllowed(roles, req.route.path, req.method.toLowerCase(), function (err, isAllowed) {
|
||||
if (err) {
|
||||
// An authorization error occurred
|
||||
return res.status(500).send('Unexpected authorization error');
|
||||
} else {
|
||||
if (isAllowed) {
|
||||
// Access granted! Invoke next middleware
|
||||
return next();
|
||||
} else {
|
||||
return res.status(403).json({
|
||||
message: 'User is not authorized'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
12
modules/systems/server/routes/systems.server.routes.js
Normal file
12
modules/systems/server/routes/systems.server.routes.js
Normal file
@@ -0,0 +1,12 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
var systemsPolicy = require('../policies/systems.server.policy'),
|
||||
systems = require('../controllers/systems.server.controller');
|
||||
|
||||
module.exports = function (app) {
|
||||
app.route('/api/systems/systemConfig').all(systemsPolicy.isAllowed)
|
||||
.get(systems.getSystemConfig);
|
||||
};
|
||||
Reference in New Issue
Block a user