BizGaze Connect: chat, meetings, recordings, mobile, directory + UI fixes
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,20 @@
|
||||
function loginUrl() { return process.env.BIZGAZE_LOGIN_URL || ''; }
|
||||
const isEnabled = () => !!loginUrl();
|
||||
|
||||
// Origin of the BizGaze app (e.g. https://c02.bizgaze.app), derived from the login URL.
|
||||
function loginOrigin() { try { return new URL(loginUrl()).origin; } catch { return ''; } }
|
||||
|
||||
// Build an absolute profile-photo URL from the session payload. BizGaze returns a
|
||||
// relative path like "_files/documents/.../x.jpg" plus an asset/app base; we try the
|
||||
// asset host first, then the app host, then the login origin. Absolute URLs pass through.
|
||||
function photoUrlFrom(s) {
|
||||
const raw = s.photoUrl || s.PhotoUrl || s.photo || s.profilePic || s.imageUrl || '';
|
||||
if (!raw || typeof raw !== 'string') return null;
|
||||
if (/^https?:\/\//i.test(raw)) return raw;
|
||||
const base = String(s.assetUrl || s.appUrl || loginOrigin() || '').replace(/\/+$/, '');
|
||||
return base ? base + '/' + raw.replace(/^\/+/, '') : null;
|
||||
}
|
||||
|
||||
async function validateLogin(username, password) {
|
||||
const url = loginUrl();
|
||||
if (!url) return { ok: false, configured: false };
|
||||
@@ -30,6 +44,7 @@ async function validateLogin(username, password) {
|
||||
return {
|
||||
ok: true, configured: true,
|
||||
name: s.name || null,
|
||||
avatarUrl: photoUrlFrom(s),
|
||||
isAdmin: !!s.isAdmin,
|
||||
tenantRef: s.tenantId != null ? String(s.tenantId) : null, // BizGaze tenant (org) id
|
||||
bizgazeUserId: s.userId != null ? String(s.userId) : null,
|
||||
|
||||
Reference in New Issue
Block a user