mirror of
https://github.com/Bubka/2FAuth.git
synced 2025-06-20 03:38:06 +02:00
Add ShowTokenAsDot setting
This commit is contained in:
parent
d345c80d4d
commit
63d9bd4b5c
@ -5,7 +5,7 @@
|
|||||||
</figure>
|
</figure>
|
||||||
<p class="is-size-4 has-text-grey-light has-ellipsis">{{ internal_service }}</p>
|
<p class="is-size-4 has-text-grey-light has-ellipsis">{{ internal_service }}</p>
|
||||||
<p class="is-size-6 has-text-grey has-ellipsis">{{ internal_account }}</p>
|
<p class="is-size-6 has-text-grey has-ellipsis">{{ internal_account }}</p>
|
||||||
<p id="otp" class="is-size-1 has-text-white" :title="$t('commons.copy_to_clipboard')" v-clipboard="() => otp.replace(/ /g, '')" v-clipboard:success="clipboardSuccessHandler">{{ otp }}</p>
|
<p id="otp" class="is-size-1 has-text-white" :title="$t('commons.copy_to_clipboard')" v-clipboard="() => otp.replace(/ /g, '')" v-clipboard:success="clipboardSuccessHandler">{{ displayedOtp }}</p>
|
||||||
<ul class="dots" v-if="type === 'totp'">
|
<ul class="dots" v-if="type === 'totp'">
|
||||||
<li v-for="n in 30"></li>
|
<li v-for="n in 30"></li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -40,6 +40,12 @@
|
|||||||
icon: ''
|
icon: ''
|
||||||
},
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
displayedOtp() {
|
||||||
|
return Boolean(Number(appSettings.showTokenAsDot)) ? this.otp.replace(/[0-9]/g, '●') : this.otp
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
mounted: function() {
|
mounted: function() {
|
||||||
this.showAccount()
|
this.showAccount()
|
||||||
},
|
},
|
||||||
|
22
resources/js/langs/locales.js
vendored
22
resources/js/langs/locales.js
vendored
@ -73,11 +73,18 @@ export default {
|
|||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"account": "Account",
|
"account": "Account",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
"language": "Language",
|
|
||||||
"confirm": [],
|
"confirm": [],
|
||||||
"forms": {
|
"forms": {
|
||||||
"edit_settings": "Edit settings",
|
"edit_settings": "Edit settings",
|
||||||
"setting_saved": "Settings saved"
|
"setting_saved": "Settings saved",
|
||||||
|
"language": {
|
||||||
|
"label": "Language",
|
||||||
|
"help": "Change the language used to translate the app interface."
|
||||||
|
},
|
||||||
|
"show_token_as_dot": {
|
||||||
|
"label": "Show generated tokens as dot",
|
||||||
|
"help": "Replace generated token caracters with *** to ensure confidentiality. Do not affect the copy/paste feature."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"twofaccounts": {
|
"twofaccounts": {
|
||||||
@ -321,11 +328,18 @@ export default {
|
|||||||
"settings": "Réglages",
|
"settings": "Réglages",
|
||||||
"account": "Compte",
|
"account": "Compte",
|
||||||
"password": "Mot de passe",
|
"password": "Mot de passe",
|
||||||
"language": "Langue",
|
|
||||||
"confirm": [],
|
"confirm": [],
|
||||||
"forms": {
|
"forms": {
|
||||||
"edit_settings": "Modifier les réglages",
|
"edit_settings": "Modifier les réglages",
|
||||||
"setting_saved": "Réglages sauvegardés"
|
"setting_saved": "Réglages sauvegardés",
|
||||||
|
"language": {
|
||||||
|
"label": "Langue",
|
||||||
|
"help": "Traduit l'application dans la langue choisie"
|
||||||
|
},
|
||||||
|
"show_token_as_dot": {
|
||||||
|
"label": "Masquer les codes générés",
|
||||||
|
"help": "Remplace les caractères des codes générés par des *** pour garantir leur confidentialité. N'affecte pas la fonction copier/coller qui reste utilisable."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"twofaccounts": {
|
"twofaccounts": {
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<form-wrapper :fail="fail" :success="success">
|
<form-wrapper :fail="fail" :success="success">
|
||||||
<form @submit.prevent="handleSubmit" @keydown="form.onKeydown($event)">
|
<form @submit.prevent="handleSubmit" @keydown="form.onKeydown($event)">
|
||||||
<form-select :options="options" :form="form" fieldName="lang" :label="$t('settings.language')" />
|
<form-select :options="options" :form="form" fieldName="lang" :label="$t('settings.forms.language.label')" :help="$t('settings.forms.language.help')" />
|
||||||
|
<form-switch :form="form" fieldName="showTokenAsDot" :label="$t('settings.forms.show_token_as_dot.label')" :help="$t('settings.forms.show_token_as_dot.help')" />
|
||||||
<form-buttons :isBusy="form.isBusy" :caption="$t('commons.save')" />
|
<form-buttons :isBusy="form.isBusy" :caption="$t('commons.save')" />
|
||||||
</form>
|
</form>
|
||||||
</form-wrapper>
|
</form-wrapper>
|
||||||
@ -17,7 +18,8 @@
|
|||||||
success: '',
|
success: '',
|
||||||
fail: '',
|
fail: '',
|
||||||
form: new Form({
|
form: new Form({
|
||||||
lang: ''
|
lang: appSettings.lang,
|
||||||
|
showTokenAsDot: Boolean(Number(appSettings.showTokenAsDot)),
|
||||||
}),
|
}),
|
||||||
options: [
|
options: [
|
||||||
{ text: this.$t('languages.en'), value: 'en' },
|
{ text: this.$t('languages.en'), value: 'en' },
|
||||||
@ -26,15 +28,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async mounted() {
|
|
||||||
|
|
||||||
const { data } = await this.axios.get('/api/settings')
|
|
||||||
|
|
||||||
data.settings.forEach((setting) => {
|
|
||||||
this.form[setting.key] = setting.value
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
methods : {
|
methods : {
|
||||||
handleSubmit(e) {
|
handleSubmit(e) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
@ -16,13 +16,20 @@ return [
|
|||||||
'settings' => 'Settings',
|
'settings' => 'Settings',
|
||||||
'account' => 'Account',
|
'account' => 'Account',
|
||||||
'password' => 'Password',
|
'password' => 'Password',
|
||||||
'language' => 'Language',
|
|
||||||
'confirm' => [
|
'confirm' => [
|
||||||
|
|
||||||
],
|
],
|
||||||
'forms' => [
|
'forms' => [
|
||||||
'edit_settings' => 'Edit settings',
|
'edit_settings' => 'Edit settings',
|
||||||
'setting_saved' => 'Settings saved',
|
'setting_saved' => 'Settings saved',
|
||||||
|
'language' => [
|
||||||
|
'label' => 'Language',
|
||||||
|
'help' => 'Change the language used to translate the app interface.'
|
||||||
|
],
|
||||||
|
'show_token_as_dot' => [
|
||||||
|
'label' => 'Show generated tokens as dot',
|
||||||
|
'help' => 'Replace generated token caracters with *** to ensure confidentiality. Do not affect the copy/paste feature.'
|
||||||
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,13 +16,20 @@ return [
|
|||||||
'settings' => 'Réglages',
|
'settings' => 'Réglages',
|
||||||
'account' => 'Compte',
|
'account' => 'Compte',
|
||||||
'password' => 'Mot de passe',
|
'password' => 'Mot de passe',
|
||||||
'language' => 'Langue',
|
|
||||||
'confirm' => [
|
'confirm' => [
|
||||||
|
|
||||||
],
|
],
|
||||||
'forms' => [
|
'forms' => [
|
||||||
'edit_settings' => 'Modifier les réglages',
|
'edit_settings' => 'Modifier les réglages',
|
||||||
'setting_saved' => 'Réglages sauvegardés',
|
'setting_saved' => 'Réglages sauvegardés',
|
||||||
|
'language' => [
|
||||||
|
'label' => 'Langue',
|
||||||
|
'help' => 'Traduit l\'application dans la langue choisie'
|
||||||
|
],
|
||||||
|
'show_token_as_dot' => [
|
||||||
|
'label' => 'Masquer les codes générés',
|
||||||
|
'help' => 'Remplace les caractères des codes générés par des *** pour garantir leur confidentialité. N\'affecte pas la fonction copier/coller qui reste utilisable.'
|
||||||
|
]
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
<div id="app">
|
<div id="app">
|
||||||
<app></app>
|
<app></app>
|
||||||
</div>
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var appSettings = @json(\Illuminate\Support\Facades\DB::table('options')->pluck('value', 'key')->toArray(), JSON_PRETTY_PRINT)
|
||||||
|
</script>
|
||||||
<script src="{{ mix('js/app.js') }}"></script>
|
<script src="{{ mix('js/app.js') }}"></script>
|
||||||
<script src="{{ mix('js/locales.js') }}"></script>
|
<script src="{{ mix('js/locales.js') }}"></script>
|
||||||
</body>
|
</body>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user