This commit is contained in:
@@ -36,6 +36,11 @@ export default defineEventHandler(async (event) => {
|
||||
|
||||
console.log('[api/members/[id]/create-portal-account.post] Processing member ID:', memberId);
|
||||
|
||||
// Get request body for membershipTier
|
||||
const body = await readBody(event).catch(() => ({}));
|
||||
const requestedMembershipTier = body.membershipTier;
|
||||
console.log('[api/members/[id]/create-portal-account.post] Requested membership tier:', requestedMembershipTier);
|
||||
|
||||
// 1. Get member data
|
||||
const { getMemberById } = await import('~/server/utils/nocodb');
|
||||
const member = await getMemberById(memberId);
|
||||
@@ -81,8 +86,8 @@ export default defineEventHandler(async (event) => {
|
||||
});
|
||||
}
|
||||
|
||||
// 5. Determine membership tier based on member data
|
||||
const membershipTier = determineMembershipTier(member);
|
||||
// 5. Determine membership tier based on request or member data
|
||||
const membershipTier = determineMembershipTier(member, requestedMembershipTier);
|
||||
console.log('[api/members/[id]/create-portal-account.post] Determined membership tier:', membershipTier);
|
||||
|
||||
// 6. Prepare membership data for Keycloak sync
|
||||
@@ -191,7 +196,12 @@ export default defineEventHandler(async (event) => {
|
||||
* Determine membership tier based on member data
|
||||
* This function analyzes member information to assign appropriate portal roles
|
||||
*/
|
||||
function determineMembershipTier(member: any): 'user' | 'board' | 'admin' {
|
||||
function determineMembershipTier(member: any, requestedTier?: string): 'user' | 'board' | 'admin' {
|
||||
// If a valid tier was specifically requested, use that
|
||||
if (requestedTier && ['user', 'board', 'admin'].includes(requestedTier)) {
|
||||
console.log(`[determineMembershipTier] Using requested tier: ${requestedTier}`);
|
||||
return requestedTier as 'user' | 'board' | 'admin';
|
||||
}
|
||||
// Use stored portal_group value if available and valid
|
||||
if (member.portal_group && ['user', 'board', 'admin'].includes(member.portal_group)) {
|
||||
console.log(`[determineMembershipTier] Using stored portal_group: ${member.portal_group}`);
|
||||
|
||||
Reference in New Issue
Block a user