mirror of
https://github.com/shuaiplus/nodewarden.git
synced 2026-08-05 06:50:10 +00:00
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import type { Env, ProfileResponse, User } from '../types';
|
|
import { buildAccountKeys } from './user-decryption';
|
|
import { isYubiKeyEnabled } from './yubico-otp';
|
|
|
|
export function buildProfileResponse(user: User, env?: Env): ProfileResponse {
|
|
void env;
|
|
const organizations: any[] = [];
|
|
const accountKeys = buildAccountKeys(user);
|
|
|
|
return {
|
|
id: user.id,
|
|
name: user.name,
|
|
email: user.email,
|
|
emailVerified: true,
|
|
premium: true,
|
|
premiumFromOrganization: false,
|
|
usesKeyConnector: false,
|
|
masterPasswordHint: user.masterPasswordHint,
|
|
culture: 'en-US',
|
|
twoFactorEnabled: !!user.totpSecret || isYubiKeyEnabled(user),
|
|
yubikeyEnabled: isYubiKeyEnabled(user),
|
|
key: user.key,
|
|
privateKey: user.privateKey,
|
|
accountKeys,
|
|
securityStamp: user.securityStamp || user.id,
|
|
organizations,
|
|
organizationsNew: organizations,
|
|
providers: [],
|
|
providerOrganizations: [],
|
|
forcePasswordReset: false,
|
|
avatarColor: null,
|
|
creationDate: user.createdAt,
|
|
// New-device verification is not supported without an email delivery channel.
|
|
// Always report disabled so clients do not present a false security posture.
|
|
verifyDevices: false,
|
|
role: user.role,
|
|
status: user.status,
|
|
object: 'profile',
|
|
};
|
|
}
|