From 819d095467c018057027fb28fc5eb05a1a2bf84e Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 13 May 2024 14:36:23 +0200 Subject: [PATCH 1/4] show gms and humhub menu entries only when activated, double check user with username and email --- backend/src/graphql/resolver/UserResolver.ts | 9 ++++++-- .../src/graphql/resolver/util/syncHumhub.ts | 5 ++++- frontend/src/components/Menu/Sidebar.spec.js | 4 ++++ frontend/src/components/Menu/Sidebar.vue | 22 +++++++++++++++++-- frontend/src/pages/Settings.vue | 22 ++++++++++++++----- 5 files changed, 51 insertions(+), 11 deletions(-) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 056cf15c2..e50f4768d 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -168,7 +168,9 @@ export class UserResolver { let humhubUserPromise: Promise> | undefined const klicktippStatePromise = getKlicktippState(dbUser.emailContact.email) if (CONFIG.HUMHUB_ACTIVE && dbUser.humhubAllowed) { - humhubUserPromise = HumHubClient.getInstance()?.userByUsernameAsync(email) + humhubUserPromise = HumHubClient.getInstance()?.userByUsernameAsync( + dbUser.alias && dbUser.gradidoID, + ) } if (dbUser.passwordEncryptionType !== PasswordEncryptionType.GRADIDO_ID) { @@ -727,7 +729,10 @@ export class UserResolver { throw new LogError('cannot create humhub client') } const username = dbUser.alias ?? dbUser.gradidoID - const humhubUser = await humhubClient.userByUsername(username) + let humhubUser = await humhubClient.userByUsername(username) + if (!humhubUser) { + humhubUser = await humhubClient.userByEmail(dbUser.emailContact.email) + } if (!humhubUser) { throw new LogError("user don't exist (any longer) on humhub") } diff --git a/backend/src/graphql/resolver/util/syncHumhub.ts b/backend/src/graphql/resolver/util/syncHumhub.ts index 73ec755ee..426f89c92 100644 --- a/backend/src/graphql/resolver/util/syncHumhub.ts +++ b/backend/src/graphql/resolver/util/syncHumhub.ts @@ -28,7 +28,10 @@ export async function syncHumhub( return } logger.debug('retrieve user from humhub') - const humhubUser = await humhubClient.userByUsername(user.alias ?? user.gradidoID) + let humhubUser = await humhubClient.userByUsername(user.alias ?? user.gradidoID) + if (!humhubUser) { + humhubUser = await humhubClient.userByEmail(user.emailContact.email) + } const humhubUsers = new Map() if (humhubUser) { humhubUsers.set(user.emailContact.email, humhubUser) diff --git a/frontend/src/components/Menu/Sidebar.spec.js b/frontend/src/components/Menu/Sidebar.spec.js index de11f1041..8891d0516 100644 --- a/frontend/src/components/Menu/Sidebar.spec.js +++ b/frontend/src/components/Menu/Sidebar.spec.js @@ -1,8 +1,12 @@ import { mount } from '@vue/test-utils' import Sidebar from './Sidebar' +import CONFIG from '../../config' const localVue = global.localVue +CONFIG.GMS_ACTIVE = 'true' +CONFIG.HUMHUB_ACTIVE = 'true' + describe('Sidebar', () => { let wrapper diff --git a/frontend/src/components/Menu/Sidebar.vue b/frontend/src/components/Menu/Sidebar.vue index ade0aad29..e71fdbfeb 100644 --- a/frontend/src/components/Menu/Sidebar.vue +++ b/frontend/src/components/Menu/Sidebar.vue @@ -28,11 +28,11 @@ {{ $t('navigation.info') }} - + {{ $t('navigation.circles') }} - + {{ $t('navigation.usersearch') }} @@ -77,6 +77,8 @@ @@ -109,6 +124,9 @@ export default { filter: brightness(0) invert(0); } +.invisible { + display: none; +} #component-sidebar { min-width: 200px; } diff --git a/frontend/src/pages/Settings.vue b/frontend/src/pages/Settings.vue index 8a0a39f8d..2116bcdf9 100644 --- a/frontend/src/pages/Settings.vue +++ b/frontend/src/pages/Settings.vue @@ -116,20 +116,19 @@
-
{{ $t('GMS.title') }}
+
{{ $t('GMS.title') }}
-
{{ $t('GMS.desc') }}
+
{{ $t('GMS.desc') }}
@@ -161,6 +160,17 @@
+
+ + +
{{ $t('GMS.title') }}
+
+ + + +
+
{{ $t('GMS.desc') }}
+
@@ -241,16 +251,16 @@ export default { return firstName === this.firstName && lastName === this.lastName }, isHumhubActivated() { - return this.humhubAllowed + return this.humhubAllowed === true }, isCommunityService() { return this.isGMS || this.isHumhub }, isGMS() { - return CONFIG.GMS_ACTIVE + return CONFIG.GMS_ACTIVE === 'true' }, isHumhub() { - return CONFIG.HUMHUB_ACTIVE + return CONFIG.HUMHUB_ACTIVE === 'true' }, }, // TODO: watch: { From 87af65098078c215864fcb2f66376919768e8a97 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 13 May 2024 14:46:13 +0200 Subject: [PATCH 2/4] change to using v-if --- frontend/src/components/Menu/Sidebar.vue | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/frontend/src/components/Menu/Sidebar.vue b/frontend/src/components/Menu/Sidebar.vue index e71fdbfeb..3a5363f60 100644 --- a/frontend/src/components/Menu/Sidebar.vue +++ b/frontend/src/components/Menu/Sidebar.vue @@ -28,11 +28,11 @@ {{ $t('navigation.info') }}
- + {{ $t('navigation.circles') }} - + {{ $t('navigation.usersearch') }} @@ -91,18 +91,11 @@ export default { } return 'mb-3' }, - humhubClass() { - if (CONFIG.HUMHUB_ACTIVE === 'true') { - return 'mb-3' - } else { - return 'invisible' - } + isHumhub() { + return CONFIG.HUMHUB_ACTIVE === 'true' }, - GMSClass() { - if (CONFIG.GMS_ACTIVE !== 'true') { - return 'invisible' - } - return '' + isGMS() { + return CONFIG.HUMHUB_ACTIVE === 'true' }, }, } @@ -124,9 +117,6 @@ export default { filter: brightness(0) invert(0); } -.invisible { - display: none; -} #component-sidebar { min-width: 200px; } From 066e817c51833e64e24c4761d0e0a7259d11b2ca Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 13 May 2024 14:58:23 +0200 Subject: [PATCH 3/4] fix --- frontend/src/components/Menu/Sidebar.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/Menu/Sidebar.vue b/frontend/src/components/Menu/Sidebar.vue index 3a5363f60..b7d4160e6 100644 --- a/frontend/src/components/Menu/Sidebar.vue +++ b/frontend/src/components/Menu/Sidebar.vue @@ -95,7 +95,7 @@ export default { return CONFIG.HUMHUB_ACTIVE === 'true' }, isGMS() { - return CONFIG.HUMHUB_ACTIVE === 'true' + return CONFIG.GMS_ACTIVE === 'true' }, }, } From a20a55cc8d5833c83abfd29f48bb8fcb77395395 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 13 May 2024 18:31:27 +0200 Subject: [PATCH 4/4] fix --- backend/src/graphql/resolver/UserResolver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index e50f4768d..352f7ffc9 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -169,7 +169,7 @@ export class UserResolver { const klicktippStatePromise = getKlicktippState(dbUser.emailContact.email) if (CONFIG.HUMHUB_ACTIVE && dbUser.humhubAllowed) { humhubUserPromise = HumHubClient.getInstance()?.userByUsernameAsync( - dbUser.alias && dbUser.gradidoID, + dbUser.alias ?? dbUser.gradidoID, ) }