diff --git a/admin/src/locales/de.json b/admin/src/locales/de.json index f301d18bd..e5f4bf4ca 100644 --- a/admin/src/locales/de.json +++ b/admin/src/locales/de.json @@ -91,6 +91,6 @@ }, "userIsDeleted": "Der Nutzer ist gelöscht. Es können keine GDD mehr geschöpft werden.", "user_deleted": "Nutzer ist gelöscht.", - "user_recovered.": "Nutzer ist wiederhergestellt.", + "user_recovered": "Nutzer ist wiederhergestellt.", "user_search": "Nutzer-Suche" } diff --git a/admin/src/locales/en.json b/admin/src/locales/en.json index 4eb1fc975..d772d638f 100644 --- a/admin/src/locales/en.json +++ b/admin/src/locales/en.json @@ -91,6 +91,6 @@ }, "userIsDeleted": "The user is deleted. No more GDD can be created.", "user_deleted": "User is deleted.", - "user_recovered.": "User is recovered.", + "user_recovered": "User is recovered.", "user_search": "User search" } diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index 3d7661e35..89b4d88b3 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -263,7 +263,7 @@ export class AdminResolver { const userIds = pendingCreations.map((p) => p.userId) const userCreations = await getUserCreations(userIds) - const users = await User.find({ id: In(userIds) }) + const users = await User.find({ where: { id: In(userIds) }, withDeleted: true }) return pendingCreations.map((pendingCreation) => { const user = users.find((u) => u.id === pendingCreation.userId) @@ -297,6 +297,9 @@ export class AdminResolver { if (moderatorUser.id === pendingCreation.userId) throw new Error('Moderator can not confirm own pending creation') + const user = await User.findOneOrFail({ id: pendingCreation.userId }, { withDeleted: true }) + if (user.deletedAt) throw new Error('This user was deleted. Cannot confirm a creation.') + const creations = await getUserCreation(pendingCreation.userId, false) if (!isCreationValid(creations, Number(pendingCreation.amount) / 10000, pendingCreation.date)) { throw new Error('Creation is not valid!!') diff --git a/database/src/index.ts b/database/src/index.ts index 4ae3d21b6..6e99ac582 100644 --- a/database/src/index.ts +++ b/database/src/index.ts @@ -6,6 +6,7 @@ import { CreatePeterLustigSeed } from './seeds/users/peter-lustig.admin.seed' import { CreateBibiBloxbergSeed } from './seeds/users/bibi-bloxberg.seed' import { CreateRaeuberHotzenplotzSeed } from './seeds/users/raeuber-hotzenplotz.seed' import { CreateBobBaumeisterSeed } from './seeds/users/bob-baumeister.seed' +import { CreateStephenHawkingSeed } from './seeds/users/stephen-hawking.seed' import { CreateGarrickOllivanderSeed } from './seeds/users/garrick-ollivander.seed' import { CreateUserSeed } from './seeds/create-user.seed' import { resetDB, pool, migration } from './helpers' @@ -44,6 +45,7 @@ const run = async (command: string) => { await runSeeder(CreateBibiBloxbergSeed) await runSeeder(CreateRaeuberHotzenplotzSeed) await runSeeder(CreateBobBaumeisterSeed) + await runSeeder(CreateStephenHawkingSeed) // eslint-disable-next-line prefer-spread Array.apply(null, Array(96)).forEach(async () => { await runSeeder(CreateUserSeed) diff --git a/database/src/seeds/users/stephen-hawking.seed.ts b/database/src/seeds/users/stephen-hawking.seed.ts new file mode 100644 index 000000000..07e129140 --- /dev/null +++ b/database/src/seeds/users/stephen-hawking.seed.ts @@ -0,0 +1,9 @@ +import { Factory, Seeder } from 'typeorm-seeding' +import { stephenHawking } from './stephen-hawking' +import { userSeeder } from '../helpers/user-helpers' + +export class CreateStephenHawkingSeed implements Seeder { + public async run(factory: Factory): Promise { + await userSeeder(factory, stephenHawking) + } +} diff --git a/database/src/seeds/users/stephen-hawking.ts b/database/src/seeds/users/stephen-hawking.ts new file mode 100644 index 000000000..9bfd83704 --- /dev/null +++ b/database/src/seeds/users/stephen-hawking.ts @@ -0,0 +1,23 @@ +import { UserInterface } from '../../interface/UserInterface' + +export const stephenHawking: UserInterface = { + email: 'stephen@hawking.uk', + firstName: 'Stephen', + lastName: 'Hawking', + // description: 'A Brief History of Time', + password: BigInt('18075098469449931746'), + pubKey: Buffer.from('19576a7aab8cd4ce683ed6735bba937d6bdbd08016568f730a385b6481241213', 'hex'), + privKey: Buffer.from( + '1d8ce9b5df086a713fee9eb562adc127073f3211a6214a54e53eb22c1249d49e1e94580ab00f25fd4b38808c1e31b41624ef627f277d21ef5d5717d4b81958f13dc2b257759caba07c6fdbc72f86ab0f', + 'hex', + ), + emailHash: Buffer.from('71d4ed7a25d2130d445d6451135eefbbdd96c3105dd297783590ced0bf3116fd', 'hex'), + createdAt: new Date('1942-01-08T09:17:52'), + deletedAt: new Date('2018-03-14T09:17:52'), + emailChecked: true, + language: 'en', + passphrase: + 'demise tree praise funny ignore despair vessel shop sorry try day peanut tongue toddler bone december inch chicken clump sheriff weasel rally check suggest ', + isAdmin: false, + addBalance: false, +}