Disable various views for non-operators

This commit is contained in:
Girish Ramakrishnan
2018-09-05 14:37:54 -07:00
parent 97b6e4c672
commit 02f04e2d33
10 changed files with 25 additions and 17 deletions
+2 -2
View File
@@ -156,8 +156,8 @@
<li ng-show="user.admin"><a href="#/email"><i class="fa fa-envelope fa-fw"></i> Email</a></li>
<li ng-show="user.admin"><a href="#/graphs"><i class="fa fa-bar-chart fa-fw"></i> Graphs</a></li>
<li ng-show="user.admin"><a href="#/settings"><i class="fa fa-wrench fa-fw"></i> Settings</a></li>
<li ng-show="user.admin" class="divider"></li>
<li ng-show="user.admin"><a href="#/support"><i class="fa fa-comment fa-fw"></i> Support</a></li>
<li ng-show="user.admin && config.features.operatorActions" class="divider"></li>
<li ng-show="user.admin && config.features.operatorActions"><a href="#/support"><i class="fa fa-comment fa-fw"></i> Support</a></li>
<li class="divider"></li>
<li><a href="" ng-click="logout($event)"><i class="fa fa-sign-out fa-fw"></i> Logout</a></li>
</ul>
+2 -1
View File
@@ -233,7 +233,8 @@ angular.module('Application').service('Client', ['$http', '$interval', 'md5', 'N
// derive feature flags from edition
config.features = {
spaces: config.edition === 'education',
hyphenatedSubdomains: config.edition === 'hostingprovider'
hyphenatedSubdomains: config.edition === 'hostingprovider',
operatorActions: config.edition !== 'hostingprovider'
};
angular.copy(config, this._config);
+1 -1
View File
@@ -182,7 +182,7 @@ angular.module('Application').controller('MainController', ['$scope', '$route',
$scope.initialized = true;
if ($scope.user.admin) {
if ($scope.user.admin && $scope.config.features.operatorActions) {
runConfigurationChecks();
$scope.fetchAppstoreProfileAndSubscription(function (error) {
+1 -1
View File
@@ -608,7 +608,7 @@ angular.module('Application').controller('AppsController', ['$scope', '$location
fetchUsers();
fetchGroups();
getDomains();
if ($scope.user.admin) getBackupConfig(); // FIXME: detect disabled backups some other way
if ($scope.user.admin && $scope.config.features.operatorActions) getBackupConfig(); // FIXME: detect disabled backups some other way
}
var refreshAppsTimer = $interval(Client.refreshInstalledApps.bind(Client), 5000);
+5
View File
@@ -492,6 +492,11 @@ angular.module('Application').controller('AppStoreController', ['$scope', '$loca
return callback();
}
if ($scope.user.admin && !$scope.config.features.operatorActions) {
$scope.validAppstoreAccount = true;
return callback();
}
Client.getAppstoreConfig(function (error, result) {
if (error) return callback(error);
+3 -3
View File
@@ -160,7 +160,7 @@
<span>{{ prettyProviderName(backupConfig.provider) }}</span>
</div>
</div>
<div class="row" ng-show="backupConfig.provider !== 'caas'">
<div class="row" ng-show="backupConfig.provider !== 'caas' && config.features.operatorActions">
<div class="col-xs-6">
<span class="text-muted">Location</span>
</div>
@@ -171,7 +171,7 @@
</div>
</div>
<div class="row">
<div class="row" ng-show="backupConfig.provider !== 'caas' && config.features.operatorActions">
<div class="col-xs-6">
<span class="text-muted">Storage Format</span>
</div>
@@ -227,7 +227,7 @@
</p>
</div>
<div class="col-md-6 text-right">
<button class="btn btn-outline btn-primary pull-right" ng-click="configureBackup.show()" ng-disabled="createBackup.busy" ng-show="backupConfig.provider !== 'caas'">Configure</button>
<button class="btn btn-outline btn-primary pull-right" ng-click="configureBackup.show()" ng-disabled="createBackup.busy" ng-show="backupConfig.provider !== 'caas' && user.admin && config.features.operatorActions">Configure</button>
<button class="btn btn-outline btn-primary" ng-click="createBackup.doCreateBackup()" ng-disabled="createBackup.busy" style="margin-right: 10px">Backup now</button>
</div>
</div>
+5 -3
View File
@@ -4,6 +4,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
Client.onReady(function () { if (!Client.getUserInfo().admin) $location.path('/'); });
$scope.config = Client.getConfig();
$scope.user = Client.getUserInfo();
$scope.backupConfig = {};
$scope.lastBackup = null;
$scope.backups = [];
@@ -64,6 +66,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
];
$scope.prettyProviderName = function (provider) {
if (!$scope.config.features.operatorActions) return $scope.config.provider;
switch (provider) {
case 'caas': return 'Managed Cloudron';
default: return provider;
@@ -316,8 +320,6 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
// $scope.configureBackup.reset();
$('#configureBackupModal').modal('hide');
// now refresh the ui
Client.refreshConfig();
getBackupConfig();
});
}
@@ -347,7 +349,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
Client.onReady(function () {
fetchBackups();
getBackupConfig();
if ($scope.config.features.operatorActions) getBackupConfig();
// show backup status
$scope.createBackup.updateStatus();
+2 -2
View File
@@ -228,11 +228,11 @@
</div>
</div>
<div class="text-left" ng-show="config.provider !== 'caas'">
<div class="text-left" ng-show="config.provider !== 'caas' && user.admin && config.features.operatorActions">
<h3>Cloudron.io Account</h3>
</div>
<div class="card" style="margin-bottom: 15px;" ng-show="config.provider !== 'caas'">
<div class="card" style="margin-bottom: 15px;" ng-show="config.provider !== 'caas' && user.admin && config.features.operatorActions">
<div class="row">
<div class="col-xs-12">
A Cloudron subscription provides access to the Cloudron App Store. This ensures you are running the latest version and keeps your apps and server secure.
+3 -3
View File
@@ -20,8 +20,8 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
$scope.prettyProviderName = function (provider) {
switch (provider) {
case 'caas': return 'Managed Cloudron';
default: return provider;
case 'caas': return 'Managed Cloudron';
default: return provider;
}
};
@@ -417,7 +417,7 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
$scope.currentPlan = caasConfig.plan;
$scope.currency = caasConfig.currency === 'eur' ? '€' : '$';
});
} else {
} else if ($scope.config.features.operatorActions) {
Client.getAppstoreConfig(function (error, appstoreConfig) {
if (error) return console.error(error);
if (!appstoreConfig.token) return;
+1 -1
View File
@@ -1,7 +1,7 @@
'use strict';
angular.module('Application').controller('SupportController', ['$scope', '$location', 'Client', function ($scope, $location, Client) {
Client.onReady(function () { if (!Client.getUserInfo().admin) $location.path('/'); });
Client.onReady(function () { if (!Client.getConfig().operatorActions || !Client.getUserInfo().admin) $location.path('/'); });
$scope.config = Client.getConfig();
$scope.user = Client.getUserInfo();