123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441 |
- 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
- */
- showUsers: function () {
- const controller = this;
- if (Cache.User.isAdmin()) {
- require(['./main', './users/main'], (App, View) => {
- controller.navigate('/users');
- App.UI.showAppContent(new View());
- });
- } else {
- this.showDashboard();
- }
- },
- /**
- * User Form
- *
- * @param [model]
- */
- showUserForm: function (model) {
- if (Cache.User.isAdmin()) {
- require(['./main', './user/form'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * 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}));
- });
- }
- },
- /**
- * 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}));
- });
- }
- },
- /**
- * 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}));
- });
- }
- },
- /**
- * Dashboard
- */
- showDashboard: function () {
- const controller = this;
- require(['./main', './dashboard/main'], (App, View) => {
- controller.navigate('/');
- App.UI.showAppContent(new View());
- });
- },
- /**
- * Nginx Proxy Hosts
- */
- showNginxProxy: function () {
- if (Cache.User.isAdmin() || Cache.User.canView('proxy_hosts')) {
- const controller = this;
- require(['./main', './nginx/proxy/main'], (App, View) => {
- controller.navigate('/nginx/proxy');
- App.UI.showAppContent(new View());
- });
- }
- },
- /**
- * 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}));
- });
- }
- },
- /**
- * Proxy Host Delete Confirm
- *
- * @param model
- */
- showNginxProxyDeleteConfirm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('proxy_hosts')) {
- require(['./main', './nginx/proxy/delete'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Nginx Redirection Hosts
- */
- showNginxRedirection: function () {
- if (Cache.User.isAdmin() || Cache.User.canView('redirection_hosts')) {
- const controller = this;
- require(['./main', './nginx/redirection/main'], (App, View) => {
- controller.navigate('/nginx/redirection');
- App.UI.showAppContent(new View());
- });
- }
- },
- /**
- * Nginx Redirection Host Form
- *
- * @param [model]
- */
- showNginxRedirectionForm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('redirection_hosts')) {
- require(['./main', './nginx/redirection/form'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Proxy Redirection Delete Confirm
- *
- * @param model
- */
- showNginxRedirectionDeleteConfirm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('redirection_hosts')) {
- require(['./main', './nginx/redirection/delete'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Nginx Stream Hosts
- */
- showNginxStream: function () {
- if (Cache.User.isAdmin() || Cache.User.canView('streams')) {
- const controller = this;
- require(['./main', './nginx/stream/main'], (App, View) => {
- controller.navigate('/nginx/stream');
- App.UI.showAppContent(new View());
- });
- }
- },
- /**
- * Stream Form
- *
- * @param [model]
- */
- showNginxStreamForm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('streams')) {
- require(['./main', './nginx/stream/form'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Stream Delete Confirm
- *
- * @param model
- */
- showNginxStreamDeleteConfirm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('streams')) {
- require(['./main', './nginx/stream/delete'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Nginx Dead Hosts
- */
- showNginxDead: function () {
- if (Cache.User.isAdmin() || Cache.User.canView('dead_hosts')) {
- const controller = this;
- require(['./main', './nginx/dead/main'], (App, View) => {
- controller.navigate('/nginx/404');
- App.UI.showAppContent(new View());
- });
- }
- },
- /**
- * Dead Host Form
- *
- * @param [model]
- */
- showNginxDeadForm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('dead_hosts')) {
- require(['./main', './nginx/dead/form'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Dead Host Delete Confirm
- *
- * @param model
- */
- showNginxDeadDeleteConfirm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('dead_hosts')) {
- require(['./main', './nginx/dead/delete'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Help Dialog
- *
- * @param {String} title
- * @param {String} content
- */
- showHelp: function (title, content) {
- require(['./main', './help/main'], function (App, View) {
- App.UI.showModalDialog(new View({title: title, content: content}));
- });
- },
- /**
- * Nginx Access
- */
- showNginxAccess: function () {
- if (Cache.User.isAdmin() || Cache.User.canView('access_lists')) {
- const controller = this;
- require(['./main', './nginx/access/main'], (App, View) => {
- controller.navigate('/nginx/access');
- App.UI.showAppContent(new View());
- });
- }
- },
- /**
- * Nginx Access List Form
- *
- * @param [model]
- */
- showNginxAccessListForm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('access_lists')) {
- require(['./main', './nginx/access/form'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Access List Delete Confirm
- *
- * @param model
- */
- showNginxAccessListDeleteConfirm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('access_lists')) {
- require(['./main', './nginx/access/delete'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Nginx Certificates
- */
- showNginxCertificates: function () {
- if (Cache.User.isAdmin() || Cache.User.canView('certificates')) {
- const controller = this;
- require(['./main', './nginx/certificates/main'], (App, View) => {
- controller.navigate('/nginx/certificates');
- App.UI.showAppContent(new View());
- });
- }
- },
- /**
- * Nginx Certificate Form
- *
- * @param [model]
- */
- showNginxCertificateForm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('certificates')) {
- require(['./main', './nginx/certificates/form'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Certificate Renew
- *
- * @param model
- */
- showNginxCertificateRenew: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('certificates')) {
- require(['./main', './nginx/certificates/renew'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Certificate Delete Confirm
- *
- * @param model
- */
- showNginxCertificateDeleteConfirm: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('certificates')) {
- require(['./main', './nginx/certificates/delete'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Certificate Test Reachability
- *
- * @param model
- */
- showNginxCertificateTestReachability: function (model) {
- if (Cache.User.isAdmin() || Cache.User.canManage('certificates')) {
- require(['./main', './nginx/certificates/test'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Audit Log
- */
- showAuditLog: function () {
- const controller = this;
- if (Cache.User.isAdmin()) {
- require(['./main', './audit-log/main'], (App, View) => {
- controller.navigate('/audit-log');
- App.UI.showAppContent(new View());
- });
- } else {
- this.showDashboard();
- }
- },
- /**
- * Audit Log Metadata
- *
- * @param model
- */
- showAuditMeta: function (model) {
- if (Cache.User.isAdmin()) {
- require(['./main', './audit-log/meta'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- },
- /**
- * Settings
- */
- showSettings: function () {
- const controller = this;
- if (Cache.User.isAdmin()) {
- require(['./main', './settings/main'], (App, View) => {
- controller.navigate('/settings');
- App.UI.showAppContent(new View());
- });
- } else {
- this.showDashboard();
- }
- },
- /**
- * Settings Item Form
- *
- * @param model
- */
- showSettingForm: function (model) {
- if (Cache.User.isAdmin()) {
- if (model.get('id') === 'default-site') {
- require(['./main', './settings/default-site/main'], function (App, View) {
- App.UI.showModalDialog(new View({model: model}));
- });
- }
- }
- },
- /**
- * Logout
- */
- logout: function () {
- Tokens.dropTopToken();
- this.showLogin();
- }
- };
|