2018-06-19 18:48:14 -04:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const Backbone = require('backbone');
|
|
|
|
const Cache = require('./cache');
|
|
|
|
const Tokens = require('./tokens');
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {String} route
|
|
|
|
* @param {Object} [options]
|
|
|
|
* @returns {Boolean}
|
|
|
|
*/
|
|
|
|
navigate: function (route, options) {
|
|
|
|
options = options || {};
|
|
|
|
Backbone.history.navigate(route.toString(), options);
|
|
|
|
return true;
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Login
|
|
|
|
*/
|
|
|
|
showLogin: function () {
|
|
|
|
window.location = '/login';
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Users
|
|
|
|
*/
|
2018-06-20 02:51:18 -04:00
|
|
|
showUsers: function () {
|
2018-06-19 18:48:14 -04:00
|
|
|
let controller = this;
|
|
|
|
if (Cache.User.isAdmin()) {
|
|
|
|
require(['./main', './users/main'], (App, View) => {
|
|
|
|
controller.navigate('/users');
|
2018-06-20 02:51:18 -04:00
|
|
|
App.UI.showAppContent(new View());
|
2018-06-19 18:48:14 -04:00
|
|
|
});
|
|
|
|
} else {
|
2018-06-20 02:51:18 -04:00
|
|
|
this.showDashboard();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* User Form
|
|
|
|
*
|
2018-07-08 22:21:03 -04:00
|
|
|
* @param [model]
|
2018-06-20 02:51:18 -04:00
|
|
|
*/
|
|
|
|
showUserForm: function (model) {
|
|
|
|
if (Cache.User.isAdmin()) {
|
|
|
|
require(['./main', './user/form'], function (App, View) {
|
|
|
|
App.UI.showModalDialog(new View({model: model}));
|
|
|
|
});
|
2018-06-19 18:48:14 -04:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2018-07-04 18:27:25 -04:00
|
|
|
/**
|
|
|
|
* User Permissions Form
|
|
|
|
*
|
|
|
|
* @param model
|
|
|
|
*/
|
|
|
|
showUserPermissions: function (model) {
|
|
|
|
if (Cache.User.isAdmin()) {
|
|
|
|
require(['./main', './user/permissions'], function (App, View) {
|
|
|
|
App.UI.showModalDialog(new View({model: model}));
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2018-06-25 02:56:13 -04:00
|
|
|
/**
|
|
|
|
* User Password Form
|
|
|
|
*
|
|
|
|
* @param model
|
|
|
|
*/
|
|
|
|
showUserPasswordForm: function (model) {
|
|
|
|
if (Cache.User.isAdmin() || model.get('id') === Cache.User.get('id')) {
|
|
|
|
require(['./main', './user/password'], function (App, View) {
|
|
|
|
App.UI.showModalDialog(new View({model: model}));
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2018-07-04 18:27:25 -04:00
|
|
|
/**
|
|
|
|
* User Delete Confirm
|
|
|
|
*
|
|
|
|
* @param model
|
|
|
|
*/
|
|
|
|
showUserDeleteConfirm: function (model) {
|
|
|
|
if (Cache.User.isAdmin() && model.get('id') !== Cache.User.get('id')) {
|
|
|
|
require(['./main', './user/delete'], function (App, View) {
|
|
|
|
App.UI.showModalDialog(new View({model: model}));
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2018-06-19 18:48:14 -04:00
|
|
|
/**
|
|
|
|
* Error
|
|
|
|
*
|
|
|
|
* @param {Error} err
|
|
|
|
* @param {String} nice_msg
|
|
|
|
*/
|
|
|
|
/*
|
|
|
|
showError: function (err, nice_msg) {
|
|
|
|
require(['./main', './error/main'], (App, View) => {
|
|
|
|
App.UI.showAppContent(new View({
|
|
|
|
err: err,
|
|
|
|
nice_msg: nice_msg
|
|
|
|
}));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Dashboard
|
|
|
|
*/
|
|
|
|
showDashboard: function () {
|
|
|
|
let controller = this;
|
|
|
|
|
|
|
|
require(['./main', './dashboard/main'], (App, View) => {
|
|
|
|
controller.navigate('/');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
2018-06-25 21:56:10 -04:00
|
|
|
/**
|
|
|
|
* Nginx Proxy Hosts
|
|
|
|
*/
|
|
|
|
showNginxProxy: function () {
|
2018-07-08 21:22:10 -04:00
|
|
|
if (Cache.User.isAdmin() || Cache.User.canView('proxy_hosts')) {
|
|
|
|
let controller = this;
|
2018-06-25 21:56:10 -04:00
|
|
|
|
2018-07-08 21:22:10 -04:00
|
|
|
require(['./main', './nginx/proxy/main'], (App, View) => {
|
|
|
|
controller.navigate('/nginx/proxy');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
}
|
2018-06-25 21:56:10 -04:00
|
|
|
},
|
|
|
|
|
2018-07-08 22:21:03 -04:00
|
|
|
/**
|
|
|
|
* Nginx Proxy Host Form
|
|
|
|
*
|
|
|
|
* @param [model]
|
|
|
|
*/
|
|
|
|
showNginxProxyForm: function (model) {
|
|
|
|
if (Cache.User.isAdmin() || Cache.User.canManage('proxy_hosts')) {
|
|
|
|
require(['./main', './nginx/proxy/form'], function (App, View) {
|
|
|
|
App.UI.showModalDialog(new View({model: model}));
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2018-06-25 21:56:10 -04:00
|
|
|
/**
|
|
|
|
* Nginx Redirection Hosts
|
|
|
|
*/
|
|
|
|
showNginxRedirection: function () {
|
2018-07-08 21:22:10 -04:00
|
|
|
if (Cache.User.isAdmin() || Cache.User.canView('redirection_hosts')) {
|
|
|
|
let controller = this;
|
2018-06-25 21:56:10 -04:00
|
|
|
|
2018-07-08 21:22:10 -04:00
|
|
|
require(['./main', './nginx/redirection/main'], (App, View) => {
|
|
|
|
controller.navigate('/nginx/redirection');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
}
|
2018-06-25 21:56:10 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Nginx Stream Hosts
|
|
|
|
*/
|
|
|
|
showNginxStream: function () {
|
2018-07-08 21:22:10 -04:00
|
|
|
if (Cache.User.isAdmin() || Cache.User.canView('streams')) {
|
|
|
|
let controller = this;
|
2018-06-25 21:56:10 -04:00
|
|
|
|
2018-07-08 21:22:10 -04:00
|
|
|
require(['./main', './nginx/stream/main'], (App, View) => {
|
|
|
|
controller.navigate('/nginx/stream');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
}
|
2018-06-25 21:56:10 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
2018-07-08 21:22:10 -04:00
|
|
|
* Nginx Dead Hosts
|
2018-06-25 21:56:10 -04:00
|
|
|
*/
|
2018-07-08 21:22:10 -04:00
|
|
|
showNginxDead: function () {
|
|
|
|
if (Cache.User.isAdmin() || Cache.User.canView('dead_hosts')) {
|
|
|
|
let controller = this;
|
2018-06-25 21:56:10 -04:00
|
|
|
|
2018-07-08 21:22:10 -04:00
|
|
|
require(['./main', './nginx/dead/main'], (App, View) => {
|
|
|
|
controller.navigate('/nginx/404');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
}
|
2018-06-25 21:56:10 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Nginx Access
|
|
|
|
*/
|
|
|
|
showNginxAccess: function () {
|
2018-07-08 21:22:10 -04:00
|
|
|
if (Cache.User.isAdmin() || Cache.User.canView('access_lists')) {
|
|
|
|
let controller = this;
|
2018-06-25 21:56:10 -04:00
|
|
|
|
2018-07-08 21:22:10 -04:00
|
|
|
require(['./main', './nginx/access/main'], (App, View) => {
|
|
|
|
controller.navigate('/nginx/access');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
}
|
2018-06-25 21:56:10 -04:00
|
|
|
},
|
|
|
|
|
2018-06-19 18:48:14 -04:00
|
|
|
/**
|
2018-07-16 03:00:52 -04:00
|
|
|
* Audit Log
|
2018-06-19 18:48:14 -04:00
|
|
|
*/
|
2018-07-16 03:00:52 -04:00
|
|
|
showAuditLog: function () {
|
2018-06-19 18:48:14 -04:00
|
|
|
let controller = this;
|
2018-07-16 03:00:52 -04:00
|
|
|
if (Cache.User.isAdmin()) {
|
|
|
|
require(['./main', './audit-log/main'], (App, View) => {
|
|
|
|
controller.navigate('/audit-log');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
this.showDashboard();
|
|
|
|
}
|
2018-06-19 18:48:14 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Logout
|
|
|
|
*/
|
|
|
|
logout: function () {
|
|
|
|
Tokens.dropTopToken();
|
|
|
|
this.showLogin();
|
|
|
|
}
|
|
|
|
};
|