diff --git a/backend/src/graphql/resolver/ContributionResolver.ts b/backend/src/graphql/resolver/ContributionResolver.ts index 2cbbbc27a..84106aa37 100644 --- a/backend/src/graphql/resolver/ContributionResolver.ts +++ b/backend/src/graphql/resolver/ContributionResolver.ts @@ -263,6 +263,10 @@ export class ContributionResolver { ]) }) const moderator = getUser(context) + const user = await DbUser.findOneOrFail({ + where: { id: contribution.userId }, + relations: ['emailContact'], + }) const result = new AdminUpdateContribution() result.amount = contribution.amount @@ -277,14 +281,14 @@ export class ContributionResolver { ) if (createdByUserChangedByModerator && adminUpdateContributionArgs.memo) { void sendContributionChangedByModeratorEmail({ - firstName: contribution.user.firstName, - lastName: contribution.user.lastName, - email: contribution.user.emailContact.email, - language: contribution.user.language, + firstName: user.firstName, + lastName: user.lastName, + email: user.emailContact.email, + language: user.language, senderFirstName: moderator.firstName, senderLastName: moderator.lastName, - contributionMemo: contribution.memo, - contributionMemoUpdated: adminUpdateContributionArgs.memo + contributionMemo: updateUnconfirmedContributionContext.getOldMemo(), + contributionMemoUpdated: contribution.memo }) } diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContribution.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContribution.role.ts index acdb7b750..b4926a640 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContribution.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContribution.role.ts @@ -25,11 +25,6 @@ export abstract class UnconfirmedContributionRole { protected abstract checkAuthorization(user: User, role: Role): void // second, check if contribution is still valid after update protected async validate(clientTimezoneOffset: number): Promise { - // TODO: remove this restriction - if (this.self.contributionDate.getMonth() !== this.updatedCreationDate.getMonth()) { - throw new LogError('Month of contribution can not be changed') - } - const contributionLogic = new ContributionLogic(this.self) this.availableCreationSums = await contributionLogic.getAvailableCreationSums( clientTimezoneOffset, diff --git a/backend/src/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context.ts b/backend/src/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context.ts index 0d70662d3..561866597 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context.ts @@ -14,6 +14,7 @@ import { UnconfirmedContributionAdminRole } from './UnconfirmedContributionAdmin import { UnconfirmedContributionUserRole } from './UnconfirmedContributionUser.role' export class UpdateUnconfirmedContributionContext { + private oldMemoText: string /** * * @param id contribution id for update @@ -46,6 +47,7 @@ export class UpdateUnconfirmedContributionContext { if (!contributionToUpdate) { throw new LogError('Contribution not found', this.id) } + this.oldMemoText = contributionToUpdate.memo const contributionMessageBuilder = new ContributionMessageBuilder() contributionMessageBuilder .setParentContribution(contributionToUpdate) @@ -85,4 +87,8 @@ export class UpdateUnconfirmedContributionContext { createdByUserChangedByModerator } } + + public getOldMemo(): string { + return this.oldMemoText + } } diff --git a/dht-node/src/config/index.ts b/dht-node/src/config/index.ts index 7aed88ccd..109675869 100644 --- a/dht-node/src/config/index.ts +++ b/dht-node/src/config/index.ts @@ -4,7 +4,7 @@ import dotenv from 'dotenv' dotenv.config() const constants = { - DB_VERSION: '0074-insert_communityuuid in_existing_users', + DB_VERSION: '0075-add_updated_by_contribution', LOG4JS_CONFIG: 'log4js-config.json', // default log level on production should be info LOG_LEVEL: process.env.LOG_LEVEL || 'info', diff --git a/federation/src/config/index.ts b/federation/src/config/index.ts index 2770ada06..b663bea91 100644 --- a/federation/src/config/index.ts +++ b/federation/src/config/index.ts @@ -10,7 +10,7 @@ Decimal.set({ }) const constants = { - DB_VERSION: '0074-insert_communityuuid in_existing_users', + DB_VERSION: '0075-add_updated_by_contribution', DECAY_START_TIME: new Date('2021-05-13 17:46:31-0000'), // GMT+0 LOG4JS_CONFIG: 'log4js-config.json', // default log level on production should be info