From 777c729f688ecc939d86e8098a44fb83db8e3b8a Mon Sep 17 00:00:00 2001 From: Louis Chemineau Date: Thu, 2 Oct 2025 19:41:10 +0200 Subject: [PATCH] feat(user_ldap): Adapt frontend to call new endpoints Signed-off-by: Louis Chemineau Signed-off-by: Louis Chmn --- .../composer/composer/autoload_classmap.php | 2 ++ .../composer/composer/autoload_static.php | 2 ++ .../src/components/SettingsTabs/LoginTab.vue | 2 +- .../src/components/WizardControls.vue | 4 +-- .../src/services/ldapConfigService.ts | 30 ++++++++----------- apps/user_ldap/src/store/configs.ts | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/apps/user_ldap/composer/composer/autoload_classmap.php b/apps/user_ldap/composer/composer/autoload_classmap.php index 36259880928..a1743773f49 100644 --- a/apps/user_ldap/composer/composer/autoload_classmap.php +++ b/apps/user_ldap/composer/composer/autoload_classmap.php @@ -30,6 +30,7 @@ return array( 'OCA\\User_LDAP\\ConnectionFactory' => $baseDir . '/../lib/ConnectionFactory.php', 'OCA\\User_LDAP\\Controller\\ConfigAPIController' => $baseDir . '/../lib/Controller/ConfigAPIController.php', 'OCA\\User_LDAP\\Controller\\RenewPasswordController' => $baseDir . '/../lib/Controller/RenewPasswordController.php', + 'OCA\\User_LDAP\\Controller\\WizardController' => $baseDir . '/../lib/Controller/WizardController.php', 'OCA\\User_LDAP\\DataCollector\\LdapDataCollector' => $baseDir . '/../lib/DataCollector/LdapDataCollector.php', 'OCA\\User_LDAP\\Db\\GroupMembership' => $baseDir . '/../lib/Db/GroupMembership.php', 'OCA\\User_LDAP\\Db\\GroupMembershipMapper' => $baseDir . '/../lib/Db/GroupMembershipMapper.php', @@ -95,5 +96,6 @@ return array( 'OCA\\User_LDAP\\User_LDAP' => $baseDir . '/../lib/User_LDAP.php', 'OCA\\User_LDAP\\User_Proxy' => $baseDir . '/../lib/User_Proxy.php', 'OCA\\User_LDAP\\Wizard' => $baseDir . '/../lib/Wizard.php', + 'OCA\\User_LDAP\\WizardFactory' => $baseDir . '/../lib/WizardFactory.php', 'OCA\\User_LDAP\\WizardResult' => $baseDir . '/../lib/WizardResult.php', ); diff --git a/apps/user_ldap/composer/composer/autoload_static.php b/apps/user_ldap/composer/composer/autoload_static.php index be985838393..e8ec60e0c8f 100644 --- a/apps/user_ldap/composer/composer/autoload_static.php +++ b/apps/user_ldap/composer/composer/autoload_static.php @@ -45,6 +45,7 @@ class ComposerStaticInitUser_LDAP 'OCA\\User_LDAP\\ConnectionFactory' => __DIR__ . '/..' . '/../lib/ConnectionFactory.php', 'OCA\\User_LDAP\\Controller\\ConfigAPIController' => __DIR__ . '/..' . '/../lib/Controller/ConfigAPIController.php', 'OCA\\User_LDAP\\Controller\\RenewPasswordController' => __DIR__ . '/..' . '/../lib/Controller/RenewPasswordController.php', + 'OCA\\User_LDAP\\Controller\\WizardController' => __DIR__ . '/..' . '/../lib/Controller/WizardController.php', 'OCA\\User_LDAP\\DataCollector\\LdapDataCollector' => __DIR__ . '/..' . '/../lib/DataCollector/LdapDataCollector.php', 'OCA\\User_LDAP\\Db\\GroupMembership' => __DIR__ . '/..' . '/../lib/Db/GroupMembership.php', 'OCA\\User_LDAP\\Db\\GroupMembershipMapper' => __DIR__ . '/..' . '/../lib/Db/GroupMembershipMapper.php', @@ -110,6 +111,7 @@ class ComposerStaticInitUser_LDAP 'OCA\\User_LDAP\\User_LDAP' => __DIR__ . '/..' . '/../lib/User_LDAP.php', 'OCA\\User_LDAP\\User_Proxy' => __DIR__ . '/..' . '/../lib/User_Proxy.php', 'OCA\\User_LDAP\\Wizard' => __DIR__ . '/..' . '/../lib/Wizard.php', + 'OCA\\User_LDAP\\WizardFactory' => __DIR__ . '/..' . '/../lib/WizardFactory.php', 'OCA\\User_LDAP\\WizardResult' => __DIR__ . '/..' . '/../lib/WizardResult.php', ); diff --git a/apps/user_ldap/src/components/SettingsTabs/LoginTab.vue b/apps/user_ldap/src/components/SettingsTabs/LoginTab.vue index 988cf1ca1cb..d734c726cb3 100644 --- a/apps/user_ldap/src/components/SettingsTabs/LoginTab.vue +++ b/apps/user_ldap/src/components/SettingsTabs/LoginTab.vue @@ -111,7 +111,7 @@ async function getUserLoginFilter() { */ async function verifyLoginName() { try { - const response = await callWizard('testLoginName', props.configId, { ldap_test_loginname: testUsername.value }) + const response = await callWizard('testLoginName', props.configId, { loginName: testUsername.value }) const testLoginName = response.changes!.ldap_test_loginname as number const testEffectiveFilter = response.changes!.ldap_test_effective_filter as string diff --git a/apps/user_ldap/src/components/WizardControls.vue b/apps/user_ldap/src/components/WizardControls.vue index e7c9f988d6b..28bdf8c9f1f 100644 --- a/apps/user_ldap/src/components/WizardControls.vue +++ b/apps/user_ldap/src/components/WizardControls.vue @@ -48,8 +48,8 @@ const ldapConfigsStore = useLDAPConfigsStore() const { updatingConfig } = storeToRefs(ldapConfigsStore) const loading = ref(false) -const result = ref<{ message: string, status: 'error' | 'success' } | null>(null) -const isValide = computed(() => result.value?.status === 'success') +const result = ref<{ success: boolean, message: string } | null>(null) +const isValide = computed(() => result.value?.success) watch(updatingConfig, () => { result.value = null diff --git a/apps/user_ldap/src/services/ldapConfigService.ts b/apps/user_ldap/src/services/ldapConfigService.ts index 4923a752251..632e8f7343f 100644 --- a/apps/user_ldap/src/services/ldapConfigService.ts +++ b/apps/user_ldap/src/services/ldapConfigService.ts @@ -55,12 +55,12 @@ export async function copyConfig(configId: string) { params.set('copyConfig', configId) const response = await axios.post( - path.join(AJAX_ENDPOINT, 'getNewServerConfigPrefix.php'), + generateOcsUrl('apps/user_ldap/api/v1/config/{configId}/copy', { configId }), params, - ) as AxiosResponse<{ status: 'error' | 'success', configPrefix: string }> + ) as AxiosResponse> - logger.debug('Created configuration', { configId: response.data.configPrefix }) - return response.data.configPrefix + logger.debug('Created configuration', { configId: response.data.ocs.data.configID }) + return response.data.ocs.data.configID } /** @@ -119,16 +119,14 @@ export async function deleteConfig(configId: string): Promise { */ export async function testConfiguration(configId: string) { const params = new FormData() - params.set('ldap_serverconfig_chooser', configId) const response = await axios.post( - path.join(AJAX_ENDPOINT, 'testConfiguration.php'), - params, - ) as AxiosResponse<{ message: string, status: 'error' | 'success' }> + generateOcsUrl('apps/user_ldap/api/v1/config/{configId}/test', { configId }), + ) as AxiosResponse> - logger.debug(`Configuration is ${response.data.status === 'success' ? 'valide' : 'invalide'}`, { configId, params, response }) + logger.debug(`Configuration is ${response.data.ocs.data.success ? 'valide' : 'invalide'}`, { configId, params, response }) - return response.data + return response.data.ocs.data } /** @@ -168,27 +166,25 @@ export async function clearMapping(subject: 'user' | 'group') { */ export async function callWizard(action: WizardAction, configId: string, extraParams: Record = {}) { const params = new FormData() - params.set('action', action) - params.set('ldap_serverconfig_chooser', configId) Object.entries(extraParams).forEach(([key, value]) => { params.set(key, value) }) const response = await axios.post( - path.join(AJAX_ENDPOINT, 'wizard.php'), + generateOcsUrl('apps/user_ldap/api/v1/wizard/{configId}/{action}', { configId, action }), params, - ) as AxiosResponse<{ status: 'error', message?: string } | { status: 'success', changes?: Record, options?: Record }> + ) as AxiosResponse, options?: Record }>> logger.debug(`Called wizard action: ${action}`, { configId, params, response }) - if (response.data.status === 'error') { - const message = response.data.message ?? t('user_ldap', 'An error occurred') + if (response.data.ocs.meta.status === 'failure') { + const message = response.data.ocs.meta.message ?? t('user_ldap', 'An error occurred') showError(message) throw new Error(message) } - return response.data + return response.data.ocs.data } /** diff --git a/apps/user_ldap/src/store/configs.ts b/apps/user_ldap/src/store/configs.ts index b2287b16d46..f32f6a787ea 100644 --- a/apps/user_ldap/src/store/configs.ts +++ b/apps/user_ldap/src/store/configs.ts @@ -31,7 +31,7 @@ export const useLDAPConfigsStore = defineStore('ldap-configs', () => { ;(async () => { updatingConfig.value++ - await callWizard('save', configId, { cfgkey: property, cfgval: newValue }) + await callWizard('save', configId, { key: property, val: newValue }) updatingConfig.value-- if (postSetHooks[property] !== undefined) {