-- ───────────────────────────────────────────────────────────────────────────── -- Bleeter ← ic-web -- -- Bleeter wird ueber dieselbe Anmeldung verwaltet wie das Webhosting: wer am -- PC als admin@liveinvader.ls angemeldet ist, ist auch hier der Anbieter. -- -- Damit gibt es genau eine Stelle, an der Anbieterrechte haengen – ein -- zweites Rechtesystem daneben waere eine zweite Stelle, an der man jemanden -- vergessen kann zu entziehen. -- -- Anbieter (superadmin) richtet Unternehmensprofile ein und verwaltet sie -- Unternehmen geben eigene Leute fuer ihr Profil frei -- Spieler waehlen ihr eigenes Handle mit @ -- -- Die alte Tabelle bleeter_lifeinvader_permissions bleibt als zweiter Weg -- bestehen: sie ist der Notausgang, falls ic-web einmal nicht laeuft. -- ───────────────────────────────────────────────────────────────────────────── IcWebAdapter = {} --- Anmeldung am PC, falls vorhanden. ---@return table|nil { username, role, domain, ... } function IcWebAdapter.GetSession(source) if GetResourceState('ic-web') ~= 'started' then return nil end local ok, session = pcall(function() return exports['ic-web']:GetSession(source) end) return ok and session or nil end --- Ist diese Person gerade als Anbieter angemeldet? function IcWebAdapter.IsProvider(source) local session = IcWebAdapter.GetSession(source) return session ~= nil and session.role == 'superadmin' end --- Ist diese Person fuer eine Domaene angemeldet – also Sprecher einer Stelle? --- Wird nicht fuer Rechte benutzt, sondern nur als Vorschlag beim Einrichten --- eines Unternehmensprofils. ---@return string|nil Domaene, wenn angemeldet function IcWebAdapter.SessionDomain(source) local session = IcWebAdapter.GetSession(source) if not session then return nil end return session.domain end