Fix email verification domain and membership fee amount
Build And Push Image / docker (push) Successful in 3m7s
Details
Build And Push Image / docker (push) Successful in 3m7s
Details
- Update domain config to use portal.monacousa.org for verification links - Correct membership fee from €50 to €150/year in welcome emails - Add password setup link to verification success page - Include registration date in welcome email template
This commit is contained in:
parent
a4e8231a3b
commit
794b6a09f0
|
|
@ -120,9 +120,23 @@ All fixes include comprehensive logging:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**All three critical issues have been resolved!** The MonacoUSA Portal should now have:
|
**All critical issues have been resolved!** The MonacoUSA Portal now has:
|
||||||
- ✅ Working email functionality in production
|
- ✅ Working email functionality in production
|
||||||
- ✅ Accurate portal account status display
|
- ✅ Accurate portal account status display
|
||||||
- ✅ Complete member deletion with proper cleanup
|
- ✅ Complete member deletion with proper cleanup
|
||||||
|
- ✅ Correct membership fee amount (€150/year)
|
||||||
|
- ✅ Fixed email verification links pointing to correct domain
|
||||||
|
|
||||||
|
## 🔧 **Additional Fixes Applied (Phase 4)**
|
||||||
|
|
||||||
|
### **Issue 4: Incorrect Membership Fee Amount**
|
||||||
|
**Problem:** Welcome email showed €50/year instead of €150/year
|
||||||
|
**Fix:** Updated `server/templates/welcome.hbs`
|
||||||
|
**Status:** ✅ FIXED
|
||||||
|
|
||||||
|
### **Issue 5: 404 Error on Email Verification**
|
||||||
|
**Problem:** Verification links pointed to `monacousa.org` instead of `portal.monacousa.org`
|
||||||
|
**Fix:** Updated `nuxt.config.ts` domain configuration
|
||||||
|
**Status:** ✅ FIXED
|
||||||
|
|
||||||
The fixes are production-ready and include proper error handling and logging.
|
The fixes are production-ready and include proper error handling and logging.
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,7 @@ export default defineNuxtConfig({
|
||||||
public: {
|
public: {
|
||||||
// Client-side configuration
|
// Client-side configuration
|
||||||
appName: "MonacoUSA Portal",
|
appName: "MonacoUSA Portal",
|
||||||
domain: process.env.NUXT_PUBLIC_DOMAIN || "monacousa.org",
|
domain: process.env.NUXT_PUBLIC_DOMAIN || "https://portal.monacousa.org",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
vuetify: {
|
vuetify: {
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,19 @@
|
||||||
size="large"
|
size="large"
|
||||||
variant="elevated"
|
variant="elevated"
|
||||||
block
|
block
|
||||||
|
:href="setupPasswordUrl"
|
||||||
|
target="_blank"
|
||||||
|
class="text-none"
|
||||||
|
>
|
||||||
|
<v-icon start>mdi-lock</v-icon>
|
||||||
|
Set Your Password
|
||||||
|
</v-btn>
|
||||||
|
|
||||||
|
<v-btn
|
||||||
|
color="secondary"
|
||||||
|
size="large"
|
||||||
|
variant="outlined"
|
||||||
|
block
|
||||||
:to="{ path: '/login', query: { verified: 'true' } }"
|
:to="{ path: '/login', query: { verified: 'true' } }"
|
||||||
class="text-none"
|
class="text-none"
|
||||||
>
|
>
|
||||||
|
|
@ -57,9 +70,9 @@
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
|
||||||
<v-btn
|
<v-btn
|
||||||
color="secondary"
|
color="outline"
|
||||||
size="large"
|
size="small"
|
||||||
variant="outlined"
|
variant="text"
|
||||||
block
|
block
|
||||||
to="/"
|
to="/"
|
||||||
class="text-none"
|
class="text-none"
|
||||||
|
|
@ -101,6 +114,13 @@ const route = useRoute();
|
||||||
const email = computed(() => route.query.email as string || '');
|
const email = computed(() => route.query.email as string || '');
|
||||||
const partialWarning = computed(() => route.query.warning === 'partial');
|
const partialWarning = computed(() => route.query.warning === 'partial');
|
||||||
|
|
||||||
|
// Setup password URL for Keycloak
|
||||||
|
const setupPasswordUrl = computed(() => {
|
||||||
|
const runtimeConfig = useRuntimeConfig();
|
||||||
|
const keycloakIssuer = runtimeConfig.public.keycloakIssuer || 'https://auth.monacousa.org/realms/monacousa-portal';
|
||||||
|
return `${keycloakIssuer}/account/#/security/signingin`;
|
||||||
|
});
|
||||||
|
|
||||||
// Set page title
|
// Set page title
|
||||||
useHead({
|
useHead({
|
||||||
title: 'Email Verified - MonacoUSA Portal',
|
title: 'Email Verified - MonacoUSA Portal',
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,12 @@ export default defineEventHandler(async (event) => {
|
||||||
firstName: member.first_name,
|
firstName: member.first_name,
|
||||||
lastName: member.last_name,
|
lastName: member.last_name,
|
||||||
verificationLink,
|
verificationLink,
|
||||||
memberId: memberId
|
memberId: memberId,
|
||||||
|
registrationDate: new Date().toLocaleDateString('en-US', {
|
||||||
|
year: 'numeric',
|
||||||
|
month: 'long',
|
||||||
|
day: 'numeric'
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
emailSent = true;
|
emailSent = true;
|
||||||
|
|
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
<p>Once your email is verified, you'll be able to log in to the portal. To activate your membership, please transfer your annual membership dues:</p>
|
<p>Once your email is verified, you'll be able to log in to the portal. To activate your membership, please transfer your annual membership dues:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Amount:</strong> €50/year</li>
|
<li><strong>Amount:</strong> €150/year</li>
|
||||||
<li><strong>Payment method:</strong> Bank transfer (details in your portal)</li>
|
<li><strong>Payment method:</strong> Bank transfer (details in your portal)</li>
|
||||||
<li><strong>Status:</strong> Your account will be activated once payment is verified</li>
|
<li><strong>Status:</strong> Your account will be activated once payment is verified</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ export interface WelcomeEmailData {
|
||||||
lastName: string;
|
lastName: string;
|
||||||
verificationLink: string;
|
verificationLink: string;
|
||||||
memberId: string;
|
memberId: string;
|
||||||
|
registrationDate?: string;
|
||||||
logoUrl?: string;
|
logoUrl?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue