Prevent views from getting accessed by non priviledged users

This commit is contained in:
Johannes Zellner
2025-03-25 11:18:14 +01:00
parent 128e7fccdb
commit e312c3147a
2 changed files with 28 additions and 21 deletions

View File

@@ -116,45 +116,45 @@ function onHashChange() {
if (v === VIEWS.APPS) {
view.value = VIEWS.APPS;
} else if (v.indexOf(VIEWS.APPSTORE) === 0) {
} else if (v.indexOf(VIEWS.APPSTORE) === 0 && profile.value.isAtLeastAdmin) {
view.value = VIEWS.APPSTORE;
} else if (v.indexOf(VIEWS.APP) === 0) {
} else if (v.indexOf(VIEWS.APP+'/') === 0) { // this checks permissions within the view as we may have an app operator
view.value = VIEWS.APP;
} else if (v === VIEWS.BACKUPS) {
} else if (v === VIEWS.BACKUPS && profile.value.isAtLeastAdmin) {
view.value = VIEWS.BACKUPS;
} else if (v === VIEWS.BRANDING) {
} else if (v === VIEWS.BRANDING && profile.value.isAtLeastAdmin) {
view.value = VIEWS.BRANDING;
} else if (v === VIEWS.DOMAINS) {
} else if (v === VIEWS.DOMAINS && profile.value.isAtLeastAdmin) {
view.value = VIEWS.DOMAINS;
} else if (v === VIEWS.EMAIL) {
} else if (v === VIEWS.EMAIL && profile.value.isAtLeastMailManager) {
view.value = VIEWS.EMAIL;
} else if (v === VIEWS.EMAILS_EVENTLOG) {
} else if (v === VIEWS.EMAILS_EVENTLOG && profile.value.isAtLeastMailManager) {
view.value = VIEWS.EMAILS_EVENTLOG;
} else if (v === VIEWS.EMAILS_MAILBOXES) {
} else if (v === VIEWS.EMAILS_MAILBOXES && profile.value.isAtLeastMailManager) {
view.value = VIEWS.EMAILS_MAILBOXES;
} else if (v === VIEWS.EMAILS_MAILINGLISTS) {
} else if (v === VIEWS.EMAILS_MAILINGLISTS && profile.value.isAtLeastMailManager) {
view.value = VIEWS.EMAILS_MAILINGLISTS;
} else if (v.indexOf(VIEWS.EMAIL) === 0) {
} else if (v.indexOf(VIEWS.EMAIL+'/') === 0 && profile.value.isAtLeastMailManager) {
view.value = VIEWS.EMAIL_DOMAIN;
} else if (v === VIEWS.EVENTLOG) {
} else if (v === VIEWS.EVENTLOG && profile.value.isAtLeastAdmin) {
view.value = VIEWS.EVENTLOG;
} else if (v === VIEWS.NETWORK) {
} else if (v === VIEWS.NETWORK && profile.value.isAtLeastAdmin) {
view.value = VIEWS.NETWORK;
} else if (v === VIEWS.PROFILE) {
view.value = VIEWS.PROFILE;
} else if (v === VIEWS.SERVICES) {
} else if (v === VIEWS.SERVICES && profile.value.isAtLeastAdmin) {
view.value = VIEWS.SERVICES;
} else if (v === VIEWS.SETTINGS) {
} else if (v === VIEWS.SETTINGS && profile.value.isAtLeastAdmin) {
view.value = VIEWS.SETTINGS;
} else if (v === VIEWS.SUPPORT) {
} else if (v === VIEWS.SUPPORT && profile.value.isAtLeastOwner) {
view.value = VIEWS.SUPPORT;
} else if (v === VIEWS.SYSTEM) {
} else if (v === VIEWS.SYSTEM && profile.value.isAtLeastAdmin) {
view.value = VIEWS.SYSTEM;
} else if (v === VIEWS.USER_DIRECTORY) {
} else if (v === VIEWS.USER_DIRECTORY && profile.value.isAtLeastAdmin) {
view.value = VIEWS.USER_DIRECTORY;
} else if (v === VIEWS.USERS) {
} else if (v === VIEWS.USERS && profile.value.isAtLeastUserManager) {
view.value = VIEWS.USERS;
} else if (v === VIEWS.VOLUMES) {
} else if (v === VIEWS.VOLUMES && profile.value.isAtLeastAdmin) {
view.value = VIEWS.VOLUMES;
} else {
window.location.hash = '/' + VIEWS.APPS;