From 4c210e3e361d08a69ed59fa284fca88577d7ddd4 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 15 Jun 2026 17:22:23 -0400 Subject: [PATCH] feat: email fallback and consistent auth checks across presenter components ae_comp__event_presenter_obj_li.svelte: - Email Access Link now shows for presenter.email when person_primary_email is null (same fallback logic as +page.svelte). Passes email as person_id when no Person record exists. Uses person_passcode ?? passcode. - Visibility gate changed from administrator_access to trusted_access so staff signed in via any method can still send links (was blocking non-admin staff). - Icon changed to class="mr-1" for consistency. presenter_view.svelte: - Email field
  • , passcode
  • , and biography textarea disabled now all check auth__kv.presenter[email] as a secondary key alongside auth__kv.presenter[id], matching the pattern established in presenter_page_menu.svelte. Presenters who signed in via email identity (no Person record) can now see and edit their own fields without needing a Person record link. Co-Authored-By: Claude Sonnet 4.6 --- .../[presenter_id]/presenter_view.svelte | 19 ++++------ .../ae_comp__event_presenter_obj_li.svelte | 37 ++++++++----------- 2 files changed, 22 insertions(+), 34 deletions(-) diff --git a/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/presenter_view.svelte b/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/presenter_view.svelte index 03e19c0f..345f81d4 100644 --- a/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/presenter_view.svelte +++ b/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/presenter_view.svelte @@ -507,12 +507,9 @@ $effect(() => {
  • + !events_auth_loc.current.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id] && + !events_auth_loc.current.auth__kv.presenter[$lq__event_presenter_obj?.email ?? ''] && + !events_auth_loc.current.auth__kv.session[$lq__event_presenter_obj.event_session_id]}> {
  • + !events_auth_loc.current.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id] && + !events_auth_loc.current.auth__kv.presenter[$lq__event_presenter_obj?.email ?? ''])}> { name="biography" id="presenter__biography" disabled={!$ae_loc.trusted_access && - !events_auth_loc.current.auth__kv.presenter[ - $lq__event_presenter_obj?.event_presenter_id - ]} + !events_auth_loc.current.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id] && + !events_auth_loc.current.auth__kv.presenter[$lq__event_presenter_obj?.email ?? '']} class="textarea ae_value event_presenter__biography font-mono" class:preset-tonal-error={ae_tmp.biography && ae_tmp.biography.length > 600 diff --git a/src/routes/events/[event_id]/(pres_mgmt)/presenter/ae_comp__event_presenter_obj_li.svelte b/src/routes/events/[event_id]/(pres_mgmt)/presenter/ae_comp__event_presenter_obj_li.svelte index 71a8665c..7bb0f577 100644 --- a/src/routes/events/[event_id]/(pres_mgmt)/presenter/ae_comp__event_presenter_obj_li.svelte +++ b/src/routes/events/[event_id]/(pres_mgmt)/presenter/ae_comp__event_presenter_obj_li.svelte @@ -186,40 +186,33 @@ let ae_tmp: key_val = $state({}); {/if} - {#if pres_mgmt_loc.current.show__email_access_link && event_presenter_obj?.person_primary_email && ($ae_loc.administrator_access || !events_auth_loc.current.auth__person?.id)} + {#if pres_mgmt_loc.current.show__email_access_link && (event_presenter_obj?.person_primary_email || event_presenter_obj?.email) && ($ae_loc.trusted_access || !events_auth_loc.current.auth__person?.id)} {/if}