diff --git a/dashboard/src/Index.vue b/dashboard/src/Index.vue index 709736300..4182ccba6 100644 --- a/dashboard/src/Index.vue +++ b/dashboard/src/Index.vue @@ -29,7 +29,9 @@ import ServicesView from './views/ServicesView.vue'; import SettingsView from './views/SettingsView.vue'; import SupportView from './views/SupportView.vue'; import SystemView from './views/SystemView.vue'; -import UserDirectoryView from './views/UserDirectoryView.vue'; +import UserDirectorySettingsView from './views/UserDirectorySettingsView.vue'; +import UserDirectoryLdapProviderView from './views/UserDirectoryLdapProviderView.vue'; +import UserDirectoryOpenIdProviderView from './views/UserDirectoryOpenIdProviderView.vue'; import UsersView from './views/UsersView.vue'; import VolumesView from './views/VolumesView.vue'; @@ -53,7 +55,9 @@ const VIEWS = { SETTINGS: 'settings', SUPPORT: 'support', SYSTEM: 'system', - USER_DIRECTORY: 'user-directory', + USER_DIRECTORY_SETTINGS: 'user-directory-settings', + USER_DIRECTORY_LDAP_PROVIDER: 'user-directory-ldap-provider', + USER_DIRECTORY_OPENID_PROVIDER: 'user-directory-openid-provider', USERS: 'users', VOLUMES: 'volumes', }; @@ -119,6 +123,7 @@ function onHashChange() { activeSidebarItem.value = v; if (activeSidebarItem.value.indexOf('email') === 0) activeSidebarGroup.value = 'email'; + else if (activeSidebarItem.value.indexOf('user-directory') === 0) activeSidebarGroup.value = 'user-directory'; else activeSidebarGroup.value = ''; if (v === VIEWS.APPS) { @@ -159,8 +164,12 @@ function onHashChange() { view.value = VIEWS.SUPPORT; } else if (v === VIEWS.SYSTEM && profile.value.isAtLeastAdmin) { view.value = VIEWS.SYSTEM; - } else if (v === VIEWS.USER_DIRECTORY && profile.value.isAtLeastAdmin) { - view.value = VIEWS.USER_DIRECTORY; + } else if (v === VIEWS.USER_DIRECTORY_SETTINGS && profile.value.isAtLeastAdmin) { + view.value = VIEWS.USER_DIRECTORY_SETTINGS; + } else if (v === VIEWS.USER_DIRECTORY_LDAP_PROVIDER && profile.value.isAtLeastAdmin) { + view.value = VIEWS.USER_DIRECTORY_LDAP_PROVIDER; + } else if (v === VIEWS.USER_DIRECTORY_OPENID_PROVIDER && profile.value.isAtLeastAdmin) { + view.value = VIEWS.USER_DIRECTORY_OPENID_PROVIDER; } else if (v === VIEWS.USERS && profile.value.isAtLeastUserManager) { view.value = VIEWS.USERS; } else if (v === VIEWS.VOLUMES && profile.value.isAtLeastAdmin) { @@ -244,7 +253,7 @@ onMounted(async () => { @@ -287,7 +302,9 @@ onMounted(async () => { - + + + diff --git a/dashboard/src/components/ExposedLdap.vue b/dashboard/src/views/UserDirectoryLdapProviderView.vue similarity index 98% rename from dashboard/src/components/ExposedLdap.vue rename to dashboard/src/views/UserDirectoryLdapProviderView.vue index 7c5eea5ee..d75cf2cb2 100644 --- a/dashboard/src/components/ExposedLdap.vue +++ b/dashboard/src/views/UserDirectoryLdapProviderView.vue @@ -3,7 +3,7 @@ import { ref, onMounted, computed } from 'vue'; import { Button, FormGroup, Checkbox, PasswordInput, TextInput } from 'pankow'; import { copyToClipboard } from 'pankow/utils'; -import Section from './Section.vue'; +import Section from '../components/Section.vue'; import DomainsModel from '../models/DomainsModel.js'; import DashboardModel from '../models/DashboardModel.js'; import UserDirectoryModel from '../models/UserDirectoryModel.js'; @@ -74,7 +74,7 @@ onMounted(async () => {