diff --git a/apps/backend/src/mutations/ProposalMutations.ts b/apps/backend/src/mutations/ProposalMutations.ts index cbf9467167..276ebf9fa1 100644 --- a/apps/backend/src/mutations/ProposalMutations.ts +++ b/apps/backend/src/mutations/ProposalMutations.ts @@ -23,7 +23,6 @@ import { QuestionaryDataSource } from '../datasources/QuestionaryDataSource'; import { SampleDataSource } from '../datasources/SampleDataSource'; import { StatusDataSource } from '../datasources/StatusDataSource'; import { TechniqueDataSource } from '../datasources/TechniqueDataSource'; -import { TemplateDataSource } from '../datasources/TemplateDataSource'; import { UserDataSource } from '../datasources/UserDataSource'; import { Authorized, EventBus, ValidateArgs } from '../decorators'; import { Event } from '../events/event.enum'; @@ -77,9 +76,7 @@ export default class ProposalMutations { @inject(Tokens.ProposalAuthorization) private proposalAuth: ProposalAuthorization, @inject(Tokens.ProposalInternalCommentsDataSource) - private proposalInternalCommentsDataSource: ProposalInternalCommentsDataSource, - @inject(Tokens.TemplateDataSource) - private templateDataSource: TemplateDataSource + private proposalInternalCommentsDataSource: ProposalInternalCommentsDataSource ) {} @ValidateArgs(createProposalValidationSchema) @@ -925,17 +922,22 @@ export default class ProposalMutations { ); const proposalUserIds = proposalUsers.map((user) => user.id); - const hasWriteRightsOnClonedProposal = - await this.proposalAuth.hasWriteRights(agent, clonedProposal); - if (!hasWriteRightsOnClonedProposal) { - proposalUserIds.push(agent!.id); - } - await this.proposalDataSource.setProposalUsers( clonedProposal.primaryKey, proposalUserIds ); + const isUserRole = this.userAuth.isUser(agent); + const isAlreadyOnProposal = + proposalUsers.some((user) => user.id === agent?.id) || + clonedProposal.proposerId === agent!.id; + if (isUserRole && !isAlreadyOnProposal) { + await this.proposalDataSource.addProposalUser( + clonedProposal.primaryKey, + agent!.id + ); + } + const proposalSamples = await this.sampleDataSource.getSamples({ filter: { proposalPk: sourceProposal.primaryKey }, });