Merge pull request #3386 from gradido/new_user_humhub

feat(backend): auto register new user in humhub
This commit is contained in:
einhornimmond 2024-11-12 21:14:36 +01:00 committed by GitHub
commit f9ecbcf293
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 14 additions and 7 deletions

View File

@ -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

View File

@ -185,7 +185,7 @@ describe('UserResolver', () => {
communityUuid: homeCom.communityUuid,
foreign: false,
gmsAllowed: true,
humhubAllowed: false,
humhubAllowed: true,
gmsPublishName: 0,
humhubPublishName: 0,
gmsPublishLocation: 2,

View File

@ -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)

View File

@ -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<void> {
// check for humhub relevant changes
if (
updateUserInfosArg &&
updateUserInfosArg.alias === undefined &&
updateUserInfosArg.firstName === undefined &&
updateUserInfosArg.lastName === undefined &&

View File

@ -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,