refactor: reset admin password (#1335)

* refactor: reset-admin-password

* chore: docs
This commit is contained in:
Jason Rasmussen
2023-01-16 13:09:04 -05:00
committed by GitHub
parent 5a6a726014
commit 1e2f02613f
8 changed files with 100 additions and 40 deletions
@@ -1,4 +1,5 @@
import { BadRequestException, Inject, Injectable, NotFoundException } from '@nestjs/common';
import { randomBytes } from 'crypto';
import { ReadStream } from 'fs';
import { AuthUserDto } from '../auth';
import { IUserRepository } from '../user';
@@ -104,4 +105,18 @@ export class UserService {
}
return this.userCore.getUserProfileImage(user);
}
async resetAdminPassword(ask: (admin: UserResponseDto) => Promise<string | undefined>) {
const admin = await this.userCore.getAdmin();
if (!admin) {
throw new BadRequestException('Admin account does not exist');
}
const providedPassword = await ask(admin);
const password = providedPassword || randomBytes(24).toString('base64').replace(/\W/g, '');
await this.userCore.updateUser(admin, admin.id, { password });
return { admin, password, provided: !!providedPassword };
}
}