diff --git a/.github/workflows/test_e2e.yml b/.github/workflows/test_e2e.yml index 590758248..bdf979bf9 100644 --- a/.github/workflows/test_e2e.yml +++ b/.github/workflows/test_e2e.yml @@ -23,6 +23,9 @@ jobs: cd .. docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps backend + - name: Boot up test system | docker-compose frontends + run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps frontend admin nginx + - name: Sleep for 10 seconds run: sleep 10s @@ -34,9 +37,6 @@ jobs: cd ../backend yarn && yarn seed - - name: Boot up test system | docker-compose frontends - run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps frontend admin nginx - - name: Boot up test system | docker-compose mailserver run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps mailserver diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index 83ee8f64e..c0a707577 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -185,7 +185,7 @@ describe('UserResolver', () => { communityUuid: homeCom.communityUuid, foreign: false, gmsAllowed: true, - humhubAllowed: false, + humhubAllowed: true, gmsPublishName: 0, humhubPublishName: 0, gmsPublishLocation: 2, diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 2ff0775d0..0302c7860 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -316,6 +316,8 @@ export class UserResolver { dbUser.firstName = firstName dbUser.lastName = lastName dbUser.language = language + // enable humhub from now on for new user + dbUser.humhubAllowed = true if (alias && (await validateAlias(alias))) { dbUser.alias = alias } @@ -386,6 +388,9 @@ export class UserResolver { await queryRunner.release() } logger.info('createUser() successful...') + if (CONFIG.HUMHUB_ACTIVE) { + void syncHumhub(null, dbUser) + } if (redeemCode) { eventRegisterRedeem.affectedUser = dbUser @@ -744,7 +749,8 @@ export class UserResolver { if (!humhubClient) { throw new LogError('cannot create humhub client') } - const username = dbUser.alias ?? dbUser.gradidoID + const userNameLogic = new PublishNameLogic(dbUser) + const username = userNameLogic.getUsername(dbUser.humhubPublishName as PublishNameType) let humhubUser = await humhubClient.userByUsername(username) if (!humhubUser) { humhubUser = await humhubClient.userByEmail(dbUser.emailContact.email) diff --git a/backend/src/graphql/resolver/util/syncHumhub.ts b/backend/src/graphql/resolver/util/syncHumhub.ts index 426f89c92..c229df655 100644 --- a/backend/src/graphql/resolver/util/syncHumhub.ts +++ b/backend/src/graphql/resolver/util/syncHumhub.ts @@ -7,11 +7,12 @@ import { UpdateUserInfosArgs } from '@/graphql/arg/UpdateUserInfosArgs' import { backendLogger as logger } from '@/server/logger' export async function syncHumhub( - updateUserInfosArg: UpdateUserInfosArgs, + updateUserInfosArg: UpdateUserInfosArgs | null, user: User, ): Promise { // check for humhub relevant changes if ( + updateUserInfosArg && updateUserInfosArg.alias === undefined && updateUserInfosArg.firstName === undefined && updateUserInfosArg.lastName === undefined && diff --git a/e2e-tests/cypress.config.ts b/e2e-tests/cypress.config.ts index fd6caa069..3251f379c 100644 --- a/e2e-tests/cypress.config.ts +++ b/e2e-tests/cypress.config.ts @@ -35,7 +35,7 @@ export default defineConfig({ excludeSpecPattern: '*.js', baseUrl: 'http://localhost:3000', chromeWebSecurity: false, - defaultCommandTimeout: 10000, + defaultCommandTimeout: 100000, supportFile: 'cypress/support/index.ts', viewportHeight: 720, viewportWidth: 1280,