Disabling account e-mail fields if e-mail service is disabled (verification e-mail couldn't be sent).

This commit is contained in:
2026-07-22 05:59:11 +02:00
parent dbe27d68d3
commit 753840f4f1
3 changed files with 21 additions and 2 deletions

View File

@@ -11,6 +11,8 @@ import { patch, post } from '#/src/api.js';
const pageContext = inject('pageContext');
const { user } = pageContext;
const allowEmailUpdate = pageContext.env.emailEnabled;
const credentials = reactive({
email: null,
password: null,
@@ -95,7 +97,7 @@ async function verifyEmail() {
<template #popper>
<div class="unverified-tooltip">
Your e-mail address is unverified
Your e-mail address is unverified.
<Ellipsis v-if="verifying" />
@@ -105,11 +107,13 @@ async function verifyEmail() {
>Verification e-mail sent</strong>
<button
v-else
v-else-if="allowEmailUpdate"
type="button"
class="button button-primary"
@click="verifyEmail"
>Verify now</button>
<span v-else>Verification is currently unavailable.</span>
</div>
</template>
</VDropdown>
@@ -123,6 +127,7 @@ async function verifyEmail() {
</span>
<input
v-if="allowEmailUpdate"
v-model="credentials.email"
type="email"
placeholder="New e-mail"

View File

@@ -9,6 +9,10 @@ import navigate from '#/src/navigate.js';
const pageContext = inject('pageContext');
const user = pageContext.user;
const allowSignup = pageContext.env.allowSignup;
// const allowRecovery = pageContext.env.emailEnabled;
const allowRecovery = false; // TODO: implement
console.log(pageContext.env);
const username = ref('');
const password = ref('');
@@ -104,6 +108,12 @@ onMounted(() => {
href="/signup"
class="link"
>Create an account</a>
<a
v-if="allowRecovery"
href="/recovery"
class="link"
>I forgot my password</a>
</form>
</div>
</template>

View File

@@ -91,6 +91,10 @@ async function hashPassword(password) {
}
export async function sendEmailVerification(user, customEmail, trigger) {
if (!config.email.enabled) {
throw new HttpError('E-mail verification is disabled', 503);
}
if (!user) {
throw new HttpError('No user provided', 401);
}