47 lines
2.1 KiB
Lua
47 lines
2.1 KiB
Lua
|
|
-- ─────────────────────────────────────────────────────────────────────────────
|
|||
|
|
-- 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
|