Felhasználók, csoportok és jogosultságok az OpenPlatformban
Az OpenPlatform szétválasztja, hogy ki (felhasználók), hol (alkalmazások) és mit (jogosultságok), középen a csoportokkal:
- A felhasználónak van neve, e-mailje, nyelve, jelszava és jelzői (
saaz adminisztrátornak,isconfirmed,isdisabled,isinactive,notifications,sounds...), és tetszőleges számú csoporthoz tartozik (@Userséma,plugins/setup/schemas/users.js). - A csoportnak van neve, színe, ikonja, egy opcionális
referenceértéke és jogosultságok listája (@Groupséma,plugins/setup/schemas/groups.js). - Az alkalmazás saját jogosultságokat deklarál: mindegyiknek van neve és egy
valueértéke, egy egyszerű karakterlánc, amelyet az alkalmazás megért (plugins/setup/schemas/apps.js).
Hogyan számítódik a hozzáférés
A definitions/func.js fájlban lévő FUNC.permissions(userid, callback) függvény egy felhasználóhoz összeállítja:
- a felhasználó nem letiltott csoportjait;
- ezeknek a csoportoknak a
tbl_group_permissionsorait: egy jogosultságot tartalmazó sor megadja az alkalmazás adott jogosultságát, a jogosultság nélküli sor pedig csak magát az alkalmazást adja (a felhasználó látja, és üres jogosultságlistát kap); - minden megadott jogosultság
valueértékét, csak az el nem távolított és nem letiltott alkalmazásokra.
Az eredmény három részből áll: a felhasználó alkalmazásai (apps), a jogosultsági értékek alkalmazásonként (permissions) és a csoportok (groups). JSON-ként tárolódik a felhasználó cache oszlopában, egy cachefilter mezővel, amely felsorolja a csoportokat (G<id>) és alkalmazásokat (A<id>), amelyektől függ. Ha egy csoport vagy alkalmazás változik, a FUNC.clearcache(id) törli minden olyan felhasználó gyorsítótárát, amelynek szűrője tartalmazza az azonosítót, és a következő kérés újraépíti.
Hol látja az alkalmazás
- A portál csak az
appsalkalmazásait listázza, és megtagadja bármely más megnyitását ("App not found"). - Az alkalmazás a saját listáját a
permissionsmezőben kapja, amikor egy indítást ellenőriz (valuekarakterláncok tömbje), a csoportok azonosítóival együtt, hogy eldönthesse, mit mutasson (hogyan csatlakozik egy app). - A beállítási képernyő a felhasználó
sajelzője alapján dönti el, ki használhatja.
Egy jó szokás a kód működéséből adódóan: a jogosultság value értékét nevezd el az alkalmazásod műveletéről (orders.read, orders.write), és rendeld a csoportokat ezekhez az értékekhez az OpenPlatformban, így az alkalmazásod csak karakterláncokat ellenőriz.