commit: d2079ecef496047e114591b1aaf8f6a0a3474c91
parent: c4497f645fbb3ade34f1af63a042640219095401
Author: HJ <30-hj@users.noreply.git.pleroma.social>
Date: Wed, 16 Oct 2019 10:00:26 +0000
Merge branch 'feature/require-password-reset' into 'develop'
Require password reset
See merge request pleroma/pleroma-fe!958
Diffstat:
5 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/src/boot/routes.js b/src/boot/routes.js
@@ -47,7 +47,7 @@ export default (store) => {
{ name: 'dms', path: '/users/:username/dms', component: DMs, beforeEnter: validateAuthenticatedRoute },
{ name: 'settings', path: '/settings', component: Settings },
{ name: 'registration', path: '/registration', component: Registration },
- { name: 'password-reset', path: '/password-reset', component: PasswordReset },
+ { name: 'password-reset', path: '/password-reset', component: PasswordReset, props: true },
{ name: 'registration-token', path: '/registration/:token', component: Registration },
{ name: 'friend-requests', path: '/friend-requests', component: FollowRequests, beforeEnter: validateAuthenticatedRoute },
{ name: 'user-settings', path: '/user-settings', component: UserSettings, beforeEnter: validateAuthenticatedRoute },
diff --git a/src/components/login_form/login_form.js b/src/components/login_form/login_form.js
@@ -59,6 +59,8 @@ const LoginForm = {
if (result.error) {
if (result.error === 'mfa_required') {
this.requireMFA({ app: app, settings: result })
+ } else if (result.identifier === 'password_reset_required') {
+ this.$router.push({ name: 'password-reset', params: { passwordResetRequested: true } })
} else {
this.error = result.error
this.focusOnPasswordInput()
diff --git a/src/components/password_reset/password_reset.js b/src/components/password_reset/password_reset.js
@@ -25,6 +25,12 @@ const passwordReset = {
this.$router.push({ name: 'root' })
}
},
+ props: {
+ passwordResetRequested: {
+ default: false,
+ type: Boolean
+ }
+ },
methods: {
dismissError () {
this.error = null
diff --git a/src/components/password_reset/password_reset.vue b/src/components/password_reset/password_reset.vue
@@ -10,7 +10,10 @@
>
<div class="container">
<div v-if="!mailerEnabled">
- <p>
+ <p v-if="passwordResetRequested">
+ {{ $t('password_reset.password_reset_required_but_mailer_is_disabled') }}
+ </p>
+ <p v-else>
{{ $t('password_reset.password_reset_disabled') }}
</p>
</div>
@@ -25,6 +28,12 @@
</div>
</div>
<div v-else>
+ <p
+ v-if="passwordResetRequested"
+ class="password-reset-required error"
+ >
+ {{ $t('password_reset.password_reset_required') }}
+ </p>
<p>
{{ $t('password_reset.instruction') }}
</p>
@@ -104,6 +113,11 @@
margin: 0.3em 0.0em 1em;
}
+ .password-reset-required {
+ background-color: var(--alertError, $fallback--alertError);
+ padding: 10px 0;
+ }
+
.notice-dismissible {
padding-right: 2rem;
}
diff --git a/src/i18n/en.json b/src/i18n/en.json
@@ -632,6 +632,8 @@
"return_home": "Return to the home page",
"not_found": "We couldn't find that email or username.",
"too_many_requests": "You have reached the limit of attempts, try again later.",
- "password_reset_disabled": "Password reset is disabled. Please contact your instance administrator."
+ "password_reset_disabled": "Password reset is disabled. Please contact your instance administrator.",
+ "password_reset_required": "You must reset your password to log in.",
+ "password_reset_required_but_mailer_is_disabled": "You must reset your password, but password reset is disabled. Please contact your instance administrator."
}
}