From 3b7de6db725cffbd5ee9f06aee00029d984fe7b8 Mon Sep 17 00:00:00 2001 From: Valya <68596159+valya@users.noreply.github.com> Date: Thu, 29 Sep 2022 13:54:41 +0100 Subject: [PATCH] feat: share unshared credentials with owner on reset (#4216) --- packages/cli/commands/user-management/reset.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/cli/commands/user-management/reset.ts b/packages/cli/commands/user-management/reset.ts index b001c812356ab..7ac83f56c3f85 100644 --- a/packages/cli/commands/user-management/reset.ts +++ b/packages/cli/commands/user-management/reset.ts @@ -1,5 +1,6 @@ import { Not } from 'typeorm'; import { Db } from '../../src'; +import { CredentialsEntity } from '../../src/databases/entities/CredentialsEntity'; import { BaseCommand } from '../BaseCommand'; export class Reset extends BaseCommand { @@ -31,6 +32,20 @@ export class Reset extends BaseCommand { await Db.collections.User.delete({ id: Not(owner.id) }); await Db.collections.User.save(Object.assign(owner, this.defaultUserProps)); + const danglingCredentials: CredentialsEntity[] = + (await Db.collections.Credentials.createQueryBuilder('credentials') + .leftJoinAndSelect('credentials.shared', 'shared') + .where('shared.credentialsId is null') + .getMany()) as CredentialsEntity[]; + const newSharedCredentials = danglingCredentials.map((credentials) => + Db.collections.SharedCredentials.create({ + credentials, + user: owner, + role: ownerCredentialRole, + }), + ); + await Db.collections.SharedCredentials.save(newSharedCredentials); + await Db.collections.Settings.update( { key: 'userManagement.isInstanceOwnerSetUp' }, { value: 'false' },