fix, small refactor

This commit is contained in:
einhornimmond 2024-11-12 16:43:25 +01:00
parent 9b0dc7df9a
commit 3ce1f58a89
4 changed files with 13 additions and 7 deletions

View File

@ -3,12 +3,11 @@ import { User } from '@entity/User'
import { convertGradidoLanguageToHumhub } from '@/apis/humhub/convertLanguage'
import { PublishNameLogic } from '@/data/PublishName.logic'
import { PublishNameType } from '@/graphql/enum/PublishNameType'
export class Account {
public constructor(user: User) {
const publishNameLogic = new PublishNameLogic(user)
this.username = publishNameLogic.getUsername(user.humhubPublishName as PublishNameType)
this.username = publishNameLogic.getUsername()
this.email = user.emailContact.email
this.language = convertGradidoLanguageToHumhub(user.language)
this.status = 1

View File

@ -66,7 +66,8 @@ export class PublishNameLogic {
* @returns user.alias for publishNameType = PUBLISH_NAME_ALIAS_OR_INITALS and user has alias
* else return user.firstName[0,2] + user.lastName[0,2] for publishNameType = [PUBLISH_NAME_ALIAS_OR_INITALS, PUBLISH_NAME_INITIALS]
*/
public getUsername(publishNameType: PublishNameType): string {
public getUsername(): string {
const publishNameType = this.user.humhubPublishName as PublishNameType
if (
[
PublishNameType.PUBLISH_NAME_ALIAS_OR_INITALS,

View File

@ -60,7 +60,6 @@ import {
EVENT_ADMIN_USER_DELETE,
EVENT_ADMIN_USER_UNDELETE,
} from '@/event/Events'
import { PublishNameType } from '@/graphql/enum/PublishNameType'
import { isValidPassword } from '@/password/EncryptorUtils'
import { encryptPassword, verifyPassword } from '@/password/PasswordEncryptor'
import { Context, getUser, getClientTimezoneOffset } from '@/server/context'
@ -172,7 +171,7 @@ export class UserResolver {
if (CONFIG.HUMHUB_ACTIVE && dbUser.humhubAllowed) {
const publishNameLogic = new PublishNameLogic(dbUser)
humhubUserPromise = HumHubClient.getInstance()?.userByUsernameAsync(
publishNameLogic.getUsername(dbUser.humhubPublishName as PublishNameType),
publishNameLogic.getUsername(),
)
}
@ -316,6 +315,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 +387,9 @@ export class UserResolver {
await queryRunner.release()
}
logger.info('createUser() successful...')
if (CONFIG.HUMHUB_ACTIVE) {
void syncHumhub(null, dbUser)
}
if (redeemCode) {
eventRegisterRedeem.affectedUser = dbUser
@ -736,7 +740,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()
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 &&