Skip to content

Commit 6c3d572

Browse files
committed
feat: improve password policy UI and recheck logic
- Updated the password policy settings UI to enhance user guidance with tooltips regarding HIBP (Have I Been Pwned) checks and recheck options. - Modified the logic to disable the recheck option based on the state of the "checkPwned" toggle, ensuring better user experience and security compliance. - Implemented a watcher to reset the recheck settings when the "checkPwned" option is disabled, streamlining the password management process.
1 parent 7eae5a6 commit 6c3d572

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

apps/web/src/pages/settings/password-policy.vue

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,22 @@
8080
v-model="payload.checkPwned"
8181
color="black"
8282
label="Vérifier les mots de passe compromis"
83-
hint="Utilise l'API de pwned pour vérifier si le mot de passe a été compromis dans une fuite de données"
8483
)
84+
q-tooltip.text-body2(anchor="top middle" self="bottom middle")
85+
| Utilise l'API HIBP (Pwned Passwords) pour vérifier si le mot de passe a été compromis dans une fuite de données.
8586
q-toggle.col-12.col-sm-6.col-md-4.col-lg-3(
86-
:disable='!hasPermission("/settings/passwdadm", "update") || !hibpKeyStatus.valid'
87+
:disable='!hasPermission("/settings/passwdadm", "update") || !payload.checkPwned || !hibpKeyStatus.valid'
8788
dense
8889
v-model="payload.pwnedRecheckEnabled"
8990
color="teal"
9091
label="Stockage des empreintes HIBP (Pwned Passwords)"
91-
hint="Active le stockage des empreintes SHA-1 chiffrées dans l'historique des mots de passe"
9292
)
93-
q-tooltip.text-body2(anchor="top middle" self="bottom middle" v-if="!hibpKeyStatus.valid")
93+
q-tooltip.text-body2(anchor="top middle" self="bottom middle" v-if="!payload.checkPwned")
94+
| Activer d’abord « Vérifier les mots de passe compromis ».
95+
q-tooltip.text-body2(anchor="top middle" self="bottom middle" v-else-if="!hibpKeyStatus.valid")
9496
span(v-text="hibpKeyStatus.reason || 'Clé SESAME_PASSWORD_HISTORY_HIBP_KEY invalide'")
97+
q-tooltip.text-body2(anchor="top middle" self="bottom middle" v-else)
98+
| Active le stockage des empreintes SHA-1 chiffrées (non réversibles) dans l'historique des mots de passe pour permettre le re-check planifié.
9599
q-toggle.col-12.col-sm-6.col-md-4.col-lg-3(
96100
:disable='!hasPermission("/settings/passwdadm", "update")'
97101
dense
@@ -140,7 +144,7 @@
140144
dense
141145
)
142146
q-select.col-12.col-sm-6.col-md-5.col-lg-4(
143-
:disable='!hasPermission("/settings/passwdadm", "update")'
147+
:disable='!hasPermission("/settings/passwdadm", "update") || !payload.pwnedRecheckEnabled || !hibpKeyStatus.valid'
144148
outlined
145149
dense
146150
emit-value
@@ -187,7 +191,7 @@
187191
</template>
188192

189193
<script lang="ts">
190-
import { ref } from 'vue'
194+
import { ref, watch } from 'vue'
191195
192196
type PasswordPolicySettings = {
193197
len: number
@@ -275,6 +279,16 @@ export default defineComponent({
275279
payload.value.pwnedRecheckEnabled = false
276280
}
277281
282+
watch(
283+
() => payload.value.checkPwned,
284+
(enabled) => {
285+
if (!enabled) {
286+
payload.value.pwnedRecheckEnabled = false
287+
payload.value.pwnedRecheckAction = 'none'
288+
}
289+
},
290+
)
291+
278292
return {
279293
payload,
280294
pwnedActions,

0 commit comments

Comments
 (0)