feat: align with upstream 1.5.9.9

This commit is contained in:
2026-09-12 18:21:11 +08:00
commit 34f0679117
805 changed files with 376275 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
interface InitialPasswordUserState {
requirePasswordChange?: boolean | null
}
interface StoredPasswordState {
password?: string | null
passwordChangedAt?: Date | string | null
}
export interface PasswordSetupState {
hasSetPassword: boolean
needsInitialPasswordSetup: boolean
}
export function getPasswordSetupState(
storedPassword: StoredPasswordState,
requirePasswordChange: boolean
): PasswordSetupState {
const hasSetPassword = !!storedPassword.password
return {
hasSetPassword,
needsInitialPasswordSetup:
!storedPassword.passwordChangedAt && (requirePasswordChange || !hasSetPassword)
}
}
export function canSetInitialPassword(
user: InitialPasswordUserState,
storedPassword: StoredPasswordState
): boolean {
return getPasswordSetupState(storedPassword, !!user.requirePasswordChange)
.needsInitialPasswordSetup
}