mirror of
https://github.com/immich-app/immich.git
synced 2024-11-28 09:33:27 +02:00
fix(server): reset-admin-password command (#10939)
* fix(server): reset-admin-password command * fix immichCli
This commit is contained in:
parent
59cdbdc492
commit
d582ec02b1
@ -9,11 +9,30 @@ describe(`immich-admin`, () => {
|
|||||||
|
|
||||||
describe('list-users', () => {
|
describe('list-users', () => {
|
||||||
it('should list the admin user', async () => {
|
it('should list the admin user', async () => {
|
||||||
const { stdout, stderr, exitCode } = await immichAdmin(['list-users']);
|
const { stdout, stderr, exitCode } = await immichAdmin(['list-users']).promise;
|
||||||
expect(exitCode).toBe(0);
|
expect(exitCode).toBe(0);
|
||||||
expect(stderr).toBe('');
|
expect(stderr).toBe('');
|
||||||
expect(stdout).toContain("email: 'admin@immich.cloud'");
|
expect(stdout).toContain("email: 'admin@immich.cloud'");
|
||||||
expect(stdout).toContain("name: 'Immich Admin'");
|
expect(stdout).toContain("name: 'Immich Admin'");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('reset-admin-password', () => {
|
||||||
|
it('should reset admin password', async () => {
|
||||||
|
const { child, promise } = immichAdmin(['reset-admin-password']);
|
||||||
|
|
||||||
|
let data = '';
|
||||||
|
child.stdout.on('data', (chunk) => {
|
||||||
|
data += chunk;
|
||||||
|
if (data.includes('Please choose a new password (optional)')) {
|
||||||
|
child.stdin.end('\n');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const { stderr, stdout, exitCode } = await promise;
|
||||||
|
expect(exitCode).toBe(0);
|
||||||
|
expect(stderr).toBe('');
|
||||||
|
expect(stdout).toContain('The admin password has been updated to:');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -64,13 +64,13 @@ export const tempDir = tmpdir();
|
|||||||
export const asBearerAuth = (accessToken: string) => ({ Authorization: `Bearer ${accessToken}` });
|
export const asBearerAuth = (accessToken: string) => ({ Authorization: `Bearer ${accessToken}` });
|
||||||
export const asKeyAuth = (key: string) => ({ 'x-api-key': key });
|
export const asKeyAuth = (key: string) => ({ 'x-api-key': key });
|
||||||
export const immichCli = (args: string[]) =>
|
export const immichCli = (args: string[]) =>
|
||||||
executeCommand('node', ['node_modules/.bin/immich', '-d', `/${tempDir}/immich/`, ...args]);
|
executeCommand('node', ['node_modules/.bin/immich', '-d', `/${tempDir}/immich/`, ...args]).promise;
|
||||||
export const immichAdmin = (args: string[]) =>
|
export const immichAdmin = (args: string[]) =>
|
||||||
executeCommand('docker', ['exec', '-i', 'immich-e2e-server', '/bin/bash', '-c', `immich-admin ${args.join(' ')}`]);
|
executeCommand('docker', ['exec', '-i', 'immich-e2e-server', '/bin/bash', '-c', `immich-admin ${args.join(' ')}`]);
|
||||||
|
|
||||||
const executeCommand = (command: string, args: string[]) => {
|
const executeCommand = (command: string, args: string[]) => {
|
||||||
let _resolve: (value: CommandResponse) => void;
|
let _resolve: (value: CommandResponse) => void;
|
||||||
const deferred = new Promise<CommandResponse>((resolve) => (_resolve = resolve));
|
const promise = new Promise<CommandResponse>((resolve) => (_resolve = resolve));
|
||||||
const child = spawn(command, args, { stdio: 'pipe' });
|
const child = spawn(command, args, { stdio: 'pipe' });
|
||||||
|
|
||||||
let stdout = '';
|
let stdout = '';
|
||||||
@ -86,7 +86,7 @@ const executeCommand = (command: string, args: string[]) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred;
|
return { promise, child };
|
||||||
};
|
};
|
||||||
|
|
||||||
let client: pg.Client | null = null;
|
let client: pg.Client | null = null;
|
||||||
|
@ -140,7 +140,7 @@ export class UserAdminResponseDto extends UserResponseDto {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function mapUserAdmin(entity: UserEntity): UserAdminResponseDto {
|
export function mapUserAdmin(entity: UserEntity): UserAdminResponseDto {
|
||||||
const license = entity.metadata.find(
|
const license = entity.metadata?.find(
|
||||||
(item): item is UserMetadataEntity<UserMetadataKey.LICENSE> => item.key === UserMetadataKey.LICENSE,
|
(item): item is UserMetadataEntity<UserMetadataKey.LICENSE> => item.key === UserMetadataKey.LICENSE,
|
||||||
)?.value;
|
)?.value;
|
||||||
return {
|
return {
|
||||||
|
Loading…
Reference in New Issue
Block a user