Working on sign in checking and permissions. This probably still needs to be reviewed some more.

This commit is contained in:
Scott Idem
2024-08-21 15:34:34 -04:00
parent d8edd658b0
commit fed37a77b8
10 changed files with 85 additions and 43 deletions

View File

@@ -47,7 +47,7 @@ let events_local_data_struct: key_val = {
// 'LNDF-67-89-92': true
},
session: {
// 'LNDF-67-89-92': true
// 'LNDF-67-89-92': true, false, 'read', 'write'
},
presentation: {
// 'LNDF-67-89-92': true

View File

@@ -44,7 +44,8 @@ ae_tmp.show__direct_download = false;
onMount(() => {
// console.log('Element - Manage Event File List');
// console.log(`link_to_type: ${link_to_type}; link_to_id: ${link_to_id}`);
console.log(`link_to_type: ${link_to_type}; link_to_id: ${link_to_id}`);
console.log(`allow_basic: ${allow_basic}; allow_moderator: ${allow_moderator}`);
// $slct_trigger = 'load__event_file_obj_li';
});

View File

@@ -54,6 +54,11 @@ onMount(() => {
</script>
{#await lq__event_file_obj_li}
<p>Loading...</p>
{:then lq__event_file_obj_li}
<Element_manage_event_file_li
link_to_type={link_to_type}
link_to_id={link_to_id}
@@ -63,3 +68,6 @@ onMount(() => {
container_class_li={container_class_li}
display_mode={display_mode}
/>
{:catch error}
<p style="color: red;">{error.message}</p>
{/await}

View File

@@ -211,9 +211,9 @@ async function handle_input_upload_files(input_upload_files, task_id) {
</script>
<!-- class:hidden={!$ae_loc.trusted_access} -->
<form
on:submit|preventDefault={handle_submit_form_files}
class:hidden={!$ae_loc.trusted_access}
class="modal-form {$ae_loc.hub.classes__form} flex flex-col gap-1 items-center justify-center w-full"
>
{#await ae_promises.upload__hosted_file_obj}

View File

@@ -19,7 +19,7 @@ import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_ev
import { events_func } from '$lib/ae_events_functions';
import Comp_event_files_upload from './../../ae_comp__event_files_upload.svelte';
import Element_manage_event_file_li from '$lib/element_manage_event_file_li_direct.svelte';
import Element_manage_event_file_li_wrap from '$lib/element_manage_event_file_li_direct.svelte';
import Form_agree from './../../form_agree.svelte';
import Presenter_view from './../../presenter_view.svelte';
import Presenter_page_menu from './../../presenter_page_menu.svelte';
@@ -113,17 +113,19 @@ if (!$ae_loc.authenticated_access && $events_loc.pres_mgmt.show_content__present
</h3>
<!-- Yes... This is a duplicate of what is shown when they press "Presenter Files" button. It can be cleaned up later. -->
{#if $ae_loc.trusted_access || $events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random]}
<Comp_event_files_upload
link_to_type="event_presenter"
link_to_id={$lq__event_presenter_obj.event_presenter_id}
link_to_id={$lq__event_presenter_obj?.event_presenter_id}
/>
{/if}
<div class="overflow-x-auto w-max max-w-full">
<Element_manage_event_file_li
<Element_manage_event_file_li_wrap
link_to_type={'event_presenter'}
link_to_id={$lq__event_presenter_obj?.event_presenter_id_random}
allow_basic={$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random] || $events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random]}
allow_moderator={$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random]}
allow_basic={$events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random] || $events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random]}
allow_moderator={$events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random]}
container_class_li={''}
/>
</div>
@@ -135,17 +137,19 @@ if (!$ae_loc.authenticated_access && $events_loc.pres_mgmt.show_content__present
Manage and Upload Presenter Files:
</h3>
{#if $ae_loc.trusted_access || $events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random]}
<Comp_event_files_upload
link_to_type="event_presenter"
link_to_id={$lq__event_presenter_obj.event_presenter_id}
/>
{/if}
<div class="overflow-x-auto w-max max-w-full">
<Element_manage_event_file_li
<Element_manage_event_file_li_wrap
link_to_type={'event_presenter'}
link_to_id={$lq__event_presenter_obj?.event_presenter_id_random}
allow_basic={$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random] || $events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random]}
allow_moderator={$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random]}
allow_basic={$events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random]}
allow_moderator={$events_loc.auth__kv.presenter[$lq__event_presenter_obj?.event_presenter_id_random]}
container_class_li={''}
/>
</div>

View File

@@ -103,7 +103,7 @@ let lq__event_presentation_obj_li = liveQuery(
);
let lq__auth__event_presenter_obj = liveQuery(
() => db_events.presenters.get($events_loc.auth__person.event_presenter_id ?? null)
() => db_events.presenters.get($events_loc.auth__person.presenter_id ?? null)
);
$slct.person_obj_kv = {}; // This is intended for the POC lookup list when generated.
@@ -133,6 +133,7 @@ onMount(() => {
<Session_page_menu
data={data}
event_session_id={$lq__event_session_obj?.event_session_id}
lq__event_session_obj={lq__event_session_obj}
lq__auth__event_presenter_obj={lq__auth__event_presenter_obj}
/>
@@ -152,7 +153,7 @@ onMount(() => {
{#if !$events_loc.pres_mgmt.show_content__session_view || $events_loc.pres_mgmt.show_content__session_view == 'default'}
<Session_view
event_session_id={$lq__event_session_obj.event_session_id}
event_session_id={$lq__event_session_obj?.event_session_id}
lq__event_obj={lq__event_obj}
lq__event_session_obj={lq__event_session_obj}
lq__auth__event_presenter_obj={lq__auth__event_presenter_obj}

View File

@@ -33,7 +33,7 @@ export async function load({ params, parent }) { // route
if (browser) {
// Load event session object
let load_event_session_obj = ({
let load_event_session_obj = events_func.load_ae_obj_id__event_session({
api_cfg: ae_acct.api,
event_session_id: event_session_id,
try_cache: true

View File

@@ -11,6 +11,7 @@ import Element_ae_crud from '$lib/element_ae_crud.svelte';
import Element_data_store from '$lib/element_data_store.svelte';
import Sign_in_out from './sign_in_out.svelte';
export let event_session_id: string;
export let lq__event_session_obj: any;
export let lq__auth__event_presenter_obj: any;
@@ -116,11 +117,15 @@ let ae_triggers: key_val = {};
class="ae_menu__action_options"
class:hidden={!$events_loc.auth__person?.id}
>
{#if event_session_id}
<!-- The Sign_in_out component is usually just a button for Sign Out if they are signed in as a POC or presenter. -->
<Sign_in_out
data={data}
event_session_id={event_session_id}
lq__event_session_obj={lq__event_session_obj}
lq__auth__event_presenter_obj={lq__auth__event_presenter_obj}
/>
{/if}
</span>

View File

@@ -398,7 +398,7 @@ $: if ($lq__event_session_obj) {
{/if}
</li>
<li
class:hidden={$lq__event_obj.mod_pres_mgmt_json.hide__session_poc}
class:hidden={$lq__event_obj?.mod_pres_mgmt_json.hide__session_poc}
>
<strong class="text-sm">Moderator/Champion:</strong>
{#if $lq__event_session_obj?.poc_person_id_random}
@@ -563,7 +563,7 @@ $: if ($lq__event_session_obj) {
{/if}
<span class="float-right">
{#if $events_loc.auth__kv.session[$events_slct.event_session_id]}
{#if $events_loc.auth__kv.session[$events_slct.event_session_id] === true}
<span class="text-green-500">Signed In</span>
{/if}
{#if $lq__event_session_obj.poc_person_primary_email && ($ae_loc.trusted_access || !$events_loc.auth__person.id && $lq__event_obj?.mod_pres_mgmt_json?.show__email_access_link)}
@@ -703,15 +703,20 @@ $: if ($lq__event_session_obj) {
</label> -->
<div class="m-1 flex flex-col flex-wrap gap-1 items-center">
{#if $ae_loc.trusted_access || $events_loc.auth__person.id }
{#if $ae_loc.trusted_access || ($events_loc.auth__person.id && $events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id_random]) }
{#if $events_loc.auth__kv.session[$events_slct.event_session_id]}
<h3 class="h3">Welcome {$lq__event_session_obj?.poc_person_full_name ?? 'Session POC'}</h3>
{:else}
<h3 class="h3">Welcome {$lq__auth__event_presenter_obj?.full_name ?? 'Presenter'}</h3>
{#if $events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id_random] === true}
<h3 class="h3">Welcome {$lq__event_session_obj?.poc_person_full_name ?? 'Session POC'}</h3>
{:else if $events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id_random] == 'read'}
<h3 class="h3">Welcome {$lq__auth__event_presenter_obj?.full_name ?? 'Presenter'}</h3>
{/if}
{#if $ae_loc.trusted_access || $events_loc.auth__kv.session[$events_slct.event_session_id] || ($events_loc.auth__kv.presenter[$events_slct.event_presenter_id] && $lq__event_presenter_obj?.agree)}
<!-- {#if $ae_loc.trusted_access || $events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id_random] || ($events_loc.auth__kv.presenter[$events_slct.event_presenter_id] && $lq__event_presenter_obj?.agree)} -->
{#if
$ae_loc.trusted_access ||
($events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id_random]) === true ||
($events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id_random] == 'read' && $lq__auth__event_presenter_obj?.agree)
}
<!-- Message if they have agreed -->
<Element_data_store
ds_code="events__pres_mgmt__session_page_authorized_info"
@@ -723,7 +728,7 @@ $: if ($lq__event_session_obj) {
show_edit={false}
show_edit_btn={true}
/>
{:else}
{:else if ($events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id_random] == 'read' && !$lq__event_presenter_obj?.agree)}
<!-- Message if they have not yet agreed -->
<Element_data_store
ds_code="events__pres_mgmt__presenter_agree_read_consent"

View File

@@ -8,6 +8,8 @@ import { goto } from '$app/navigation';
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
import { events_loc, events_sess, events_slct, events_trigger, events_trig_kv } from '$lib/ae_events_stores';
export let event_session_id: string;
export let lq__event_session_obj: any;
export let lq__auth__event_presenter_obj: any;
if (browser) {
@@ -36,17 +38,28 @@ if (browser) {
$events_sess.auth__person.session_id = url_session_id; // For POC or LCI Champions for sessions. Do not set for a presenter!
$events_sess.auth__kv.person[url_person_id] = true;
$events_sess.auth__kv.session[$events_slct.event_session_id] = true; // For POC or LCI Champions for sessions. Do not set for a presenter!
$events_sess.auth__kv.session[url_session_id] = true; // For POC or LCI Champions for sessions. Do not set for a presenter!
$events_sess.auth__kv.presentation[url_presentation_id] = true;
$events_sess.auth__kv.presenter[url_presenter_id] = true;
// We need to set the selected presentation and presenter objects based on the respective IDs.
if (url_session_id) {
$events_slct.auth__event_session_id = url_session_id;
}
if (url_presentation_id && url_presenter_id) {
$events_slct.auth__event_presentation_id = url_presentation_id;
$events_slct.auth__event_presenter_id = url_presenter_id;
}
console.log('Remove the passcode from the URL.');
if (url_presenter_id) {
presenter_sign_in();
}
if (url_session_id) {
session_sign_in();
}
console.log('Remove the sign in fields from the URL.');
data.url.searchParams.delete('person_id');
data.url.searchParams.delete('person_pass');
data.url.searchParams.delete('presentation_id');
@@ -55,14 +68,9 @@ if (browser) {
let new_url = data.url.toString()
console.log(new_url);
goto(new_url, {replaceState: false});
if (url_presenter_id) {
presenter_sign_in();
}
if (url_session_id) {
session_sign_in();
}
// We need to set browser history and force all load functions to rerun.
goto(new_url, {replaceState: true, invalidateAll: true});
}
// });
}
@@ -75,13 +83,14 @@ function session_sign_in() {
$ae_loc.access_type = 'authenticated';
$events_loc.auth__person.id = $events_sess.auth__person.id; // person_id
$events_loc.auth__person.person_id = $events_sess.auth__person.id;
$events_loc.auth__person.entered_key = $events_sess.auth__entered_key; // need to verify entered_key...
$events_loc.auth__person.email = 'test@example.com';
$events_loc.auth__person.full_name = 'Test Person';
// $events_loc.auth__person.event_session_id = $events_sess.auth__person.session_id;
// $events_loc.auth__person.email = 'test@example.com';
// $events_loc.auth__person.full_name = 'Test Person';
// $events_loc.auth__person.session_id = $events_sess.auth__person.session_id;
$events_loc.auth__kv.person[$events_sess.auth__person.id] = true;
$events_loc.auth__kv.session[$events_slct.event_session_id] = true;
$events_loc.auth__kv.person[$events_sess.auth__person.person_id] = true;
$events_loc.auth__kv.session[$events_sess.auth__person.session_id] = true;
$events_loc.auth__kv.presentation[$events_sess.auth__person.presentation_id] = false; // Set to false for session POC (LCI Champions).
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] = false; // Set to false for session POC (LCI Champions).
@@ -94,19 +103,23 @@ function session_sign_in() {
function presenter_sign_in() {
console.log('Presenter sign in with URL values');
console.log(event_session_id);
$ae_loc.authenticated_access = true;
$ae_loc.access_type = 'authenticated';
$ae_loc.person_id = $events_sess.auth__person.id;
$events_loc.auth__person.id = $events_sess.auth__person.id; // person_id
$events_loc.auth__person.entered_key = $events_sess.auth__entered_key; // also person_id in this case
$events_loc.auth__person.person_id = $events_sess.auth__person.id;
// $events_loc.auth__person.entered_key = $events_sess.auth__entered_key; // also person_id in this case
// $lq__auth__event_presenter_obj.full_name
$events_loc.auth__person.email = 'test@example.com';
$events_loc.auth__person.full_name = 'Test Person';
$events_loc.auth__person.event_presenter_id = $events_sess.auth__person.presenter_id;
// $events_loc.auth__person.email = 'test@example.com';
// $events_loc.auth__person.full_name = 'Test Person';
$events_loc.auth__person.presenter_id = $events_sess.auth__person.presenter_id;
$events_loc.auth__kv.person[$events_sess.entered_key] = true;
$events_loc.auth__kv.session[$events_slct.event_session_id] = false; // Set to false for presenters.
$events_loc.auth__kv.person[$events_sess.auth__person.person_id] = true;
// $events_loc.auth__kv.session[$events_sess.auth__person.session_id] = 'read'; // Set to 'read' for presenters.
$events_loc.auth__kv.session[event_session_id] = 'read'; // Set to 'read' for presenters.
$events_loc.auth__kv.presentation[$events_sess.auth__person.presentation_id] = true;
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] = true;
@@ -128,8 +141,13 @@ function sign_out() {
full_name: null,
entered_key: null,
entered_passcode: null,
person_id: null,
presenter_id: null,
presentation_id: null,
session_id: null,
};
$events_loc.auth__kv = {
event: {},
session: {},
presentation: {},
presenter: {},