Another snapshot
This commit is contained in:
@@ -75,8 +75,67 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onMount(() => {
|
onMount(async () => {
|
||||||
init_jitsi();
|
console.log('Jitsi: onMount - fetching user data and initializing Jitsi...');
|
||||||
|
const url_params = data.params;
|
||||||
|
console.log('Jitsi: url_params:', url_params);
|
||||||
|
|
||||||
|
// --- Start with fallback data from URL ---
|
||||||
|
user_id = url_params.uuid; // Novi Customer GUID
|
||||||
|
display_name = url_params.full_name ?? 'Guest'; // May be overridden
|
||||||
|
email = (url_params.email ?? 'guest@example.com').replace(/\s+/g, '+'); // May be overridden
|
||||||
|
room_name = url_params.room ?? 'Default-Room';
|
||||||
|
domain = url_params.domain ?? 'jitsi.dgrzone.com';
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
`Jitsi: Initial data: user_id: ${user_id}, display_name: ${display_name}, email: ${email}, room_name: ${room_name}, domain: ${domain}`
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!user_id) {
|
||||||
|
const container = document.getElementById(jitsi_container_id);
|
||||||
|
if (container) {
|
||||||
|
container.innerHTML = '<h1>User ID (uuid) is missing. Cannot start meeting.</h1>';
|
||||||
|
}
|
||||||
|
console.error('Jitsi: User ID (uuid) is missing. Cannot start meeting.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Fetch dynamic data from Novi API ---
|
||||||
|
const novi_api_root_url = $ae_loc.site_cfg_json?.novi_api_root_url;
|
||||||
|
const novi_api_key = $ae_loc.site_cfg_json?.novi_idaa_api_key;
|
||||||
|
|
||||||
|
if (novi_api_root_url && novi_api_key) {
|
||||||
|
const member_details = await get_novi_member_details(user_id, novi_api_root_url, novi_api_key);
|
||||||
|
if (member_details.display_name) {
|
||||||
|
display_name = member_details.display_name;
|
||||||
|
console.log(`Jitsi: Updated display_name from Novi: ${display_name}`);
|
||||||
|
}
|
||||||
|
if (member_details.email) {
|
||||||
|
email = member_details.email;
|
||||||
|
console.log(`Jitsi: Updated email from Novi: ${email}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const novi_idaa_group_guid_li = $ae_loc.site_cfg_json?.novi_idaa_group_guid_li ?? [];
|
||||||
|
const moderatorIdSet = await get_novi_group_moderators(
|
||||||
|
novi_idaa_group_guid_li,
|
||||||
|
novi_api_root_url,
|
||||||
|
novi_api_key
|
||||||
|
);
|
||||||
|
const normalizedUserId = String(user_id ?? '').toLowerCase().trim();
|
||||||
|
|
||||||
|
if (normalizedUserId && moderatorIdSet.has(normalizedUserId)) {
|
||||||
|
is_moderator = true;
|
||||||
|
console.log(`Jitsi: User ${user_id} is a moderator.`);
|
||||||
|
} else {
|
||||||
|
is_moderator = false; // Explicitly set to false if not in the set
|
||||||
|
console.log(`Jitsi: User ${user_id} is not a moderator.`);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.warn('Jitsi: Novi API not configured. Skipping user details/moderator check.');
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- All data fetched, now initialize Jitsi ---
|
||||||
|
await init_jitsi();
|
||||||
});
|
});
|
||||||
|
|
||||||
onDestroy(() => {
|
onDestroy(() => {
|
||||||
@@ -216,63 +275,19 @@
|
|||||||
jitsi_api = null;
|
jitsi_api = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Jitsi: Starting initialization...');
|
console.log('Jitsi: Initializing Jitsi meeting interface...');
|
||||||
const url_params = data.params;
|
|
||||||
console.log('Jitsi: url_params:', url_params);
|
|
||||||
|
|
||||||
// --- Start with fallback data from URL ---
|
// These variables are now expected to be set in the component's state
|
||||||
user_id = url_params.uuid; // Novi Customer GUID
|
if (!user_id || !display_name || !email || !room_name || !domain) {
|
||||||
display_name = url_params.full_name ?? 'Guest'; // May be overridden
|
console.error('Jitsi: Missing required data to initialize meeting. Aborting.');
|
||||||
email = (url_params.email ?? 'guest@example.com').replace(/\s+/g, '+'); // May be overridden
|
|
||||||
room_name = url_params.room ?? 'Default-Room';
|
|
||||||
domain = url_params.domain ?? 'jitsi.dgrzone.com';
|
|
||||||
|
|
||||||
console.log(
|
|
||||||
`Jitsi: Initial data: user_id: ${user_id}, display_name: ${display_name}, email: ${email}, room_name: ${room_name}, domain: ${domain}`
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!user_id) {
|
|
||||||
const container = document.getElementById(jitsi_container_id);
|
const container = document.getElementById(jitsi_container_id);
|
||||||
if (container) {
|
if (container) {
|
||||||
container.innerHTML = '<h1>User ID (uuid) is missing. Cannot start meeting.</h1>';
|
container.innerHTML = '<h1>Could not initialize meeting: missing user data.</h1>';
|
||||||
}
|
}
|
||||||
console.error('Jitsi: User ID (uuid) is missing. Cannot start meeting.');
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Fetch dynamic data from Novi API ---
|
const url_params = data.params;
|
||||||
const novi_api_root_url = $ae_loc.site_cfg_json?.novi_api_root_url;
|
|
||||||
const novi_api_key = $ae_loc.site_cfg_json?.novi_idaa_api_key;
|
|
||||||
|
|
||||||
if (novi_api_root_url && novi_api_key) {
|
|
||||||
const member_details = await get_novi_member_details(user_id, novi_api_root_url, novi_api_key);
|
|
||||||
if (member_details.display_name) {
|
|
||||||
display_name = member_details.display_name;
|
|
||||||
console.log(`Jitsi: Updated display_name from Novi: ${display_name}`);
|
|
||||||
}
|
|
||||||
if (member_details.email) {
|
|
||||||
email = member_details.email;
|
|
||||||
console.log(`Jitsi: Updated email from Novi: ${email}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const novi_idaa_group_guid_li = $ae_loc.site_cfg_json?.novi_idaa_group_guid_li ?? [];
|
|
||||||
const moderatorIdSet = await get_novi_group_moderators(
|
|
||||||
novi_idaa_group_guid_li,
|
|
||||||
novi_api_root_url,
|
|
||||||
novi_api_key
|
|
||||||
);
|
|
||||||
const normalizedUserId = String(user_id ?? '').toLowerCase().trim();
|
|
||||||
|
|
||||||
if (normalizedUserId && moderatorIdSet.has(normalizedUserId)) {
|
|
||||||
is_moderator = true;
|
|
||||||
console.log(`Jitsi: User ${user_id} is a moderator.`);
|
|
||||||
} else {
|
|
||||||
is_moderator = false; // Explicitly set to false if not in the set
|
|
||||||
console.log(`Jitsi: User ${user_id} is not a moderator.`);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.warn('Jitsi: Novi API not configured. Skipping user details/moderator check.');
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- Initialize Jitsi ---
|
// --- Initialize Jitsi ---
|
||||||
let jwt_token = null;
|
let jwt_token = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user