fix(server): user can not signup through oauth if ever invited (#6101)

This commit is contained in:
liuyi
2024-03-13 07:50:10 +00:00
parent fd9084ea6a
commit 573528be41
9 changed files with 58 additions and 13 deletions

View File

@@ -152,8 +152,9 @@ export class AuthController {
throw new BadRequestException('Invalid Sign-in mail Token');
}
const user = await this.user.findOrCreateUser(email, {
const user = await this.user.fulfillUser(email, {
emailVerifiedAt: new Date(),
registered: true,
});
await this.auth.setCookie(req, res, user);

View File

@@ -49,7 +49,7 @@ export const CurrentUser = createParamDecorator(
);
export interface CurrentUser
extends Omit<User, 'password' | 'createdAt' | 'emailVerifiedAt'> {
extends Pick<User, 'id' | 'email' | 'avatarUrl' | 'name'> {
hasPassword: boolean | null;
emailVerified: boolean;
}

View File

@@ -36,12 +36,18 @@ export function parseAuthUserSeqNum(value: any) {
}
export function sessionUser(
user: Omit<User, 'password'> & { password?: string | null }
user: Pick<
User,
'id' | 'email' | 'avatarUrl' | 'name' | 'emailVerifiedAt'
> & { password?: string | null }
): CurrentUser {
return assign(omit(user, 'password', 'emailVerifiedAt', 'createdAt'), {
hasPassword: user.password !== null,
emailVerified: user.emailVerifiedAt !== null,
});
return assign(
omit(user, 'password', 'registered', 'emailVerifiedAt', 'createdAt'),
{
hasPassword: user.password !== null,
emailVerified: user.emailVerifiedAt !== null,
}
);
}
@Injectable()