fix condition

This commit is contained in:
kakkokari-gtyih 2024-09-25 19:00:12 +09:00
parent a2a74c146d
commit adcb84f6e7
1 changed files with 14 additions and 11 deletions

View File

@ -70,19 +70,22 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
private instanceActorService: InstanceActorService,
) {
super(meta, paramDef, async (ps, _me, token) => {
if (ps.initialPassword != null && this.config.initialPassword != null) {
if (ps.initialPassword !== this.config.initialPassword) {
// 初期パスワードが違う場合
throw new ApiError(meta.errors.wrongInitialPassword);
}
} else if (this.config.initialPassword == null && (ps.initialPassword != null && ps.initialPassword.trim() !== '')) {
// 初期パスワードが設定されていないのに初期パスワードが入力された場合
throw new ApiError(meta.errors.wrongInitialPassword);
}
const me = _me ? await this.usersRepository.findOneByOrFail({ id: _me.id }) : null;
const realUsers = await this.instanceActorService.realLocalUsersPresent();
if ((realUsers && !me?.isRoot) || token !== null) {
if (!realUsers && me == null && token == null) {
// 初回セットアップの場合
if (ps.initialPassword != null && this.config.initialPassword != null) {
if (ps.initialPassword !== this.config.initialPassword) {
// 初期パスワードが違う場合
throw new ApiError(meta.errors.wrongInitialPassword);
}
} else if (this.config.initialPassword == null && (ps.initialPassword != null && ps.initialPassword.trim() !== '')) {
// 初期パスワードが設定されていないのに初期パスワードが入力された場合
throw new ApiError(meta.errors.wrongInitialPassword);
}
} else if ((realUsers && !me?.isRoot) || token !== null) {
// 初回セットアップではなく、管理者でない場合
throw new ApiError(meta.errors.accessDenied);
}