Lehetséges jogok lekérése

A ConyCMS API-n keresztül hogy lehet lekérni a lehetséges jogokat.

2022.01.10 — Posted by Webb & Flow


Tartalomjegyzék

Működés

A jogok lekérésére két API végponton keresztül van lehetőség, az egyik végpont egy felhasználó lehetséges jogait adja vissza, a másik pedig ag felhasználó csoportét.

Mivel mindkét végpont azonos struktúrájú adatot ad vissza, így ebben a dokumentumban található mindkettőnek a leírása.

A visszaadott válasz nem csak a lehetséges jogokat adja meg, hanem azt is, hogy az adott felhasználó, vagy csoport rendelkezik-e az adott joggal, illetve ha igen, akkor pontosan miért.

Például ha egy felhasználó egy adott joggal egy felhasználó csoport miatt rendelkezik, akkor ezt visszaadja az API, illetve ha az adatot lekérő felhasználó rendelkezik RoleGroup listázási joggal, akkor azoknak a csoportoknak a listáját is, amik az adott jogot beállítják.

Egyes mezők csak a felhasználóknál értelmezhető (például egy felhasználói csoport nem kaphat egy jogot egy másik csoport miatt), ezek a mezők a felhasználói csoport esetén az adott típus üres, vagy logikai hamis értékével jönnek vissza.

Kommunikáció

GET /projects/{PROJECTID}/roles/byuser/{EMAIL}

GET /projects/{PROJECTID}/roles/bygroup/{GROUPID}

A visszaadott válasz egy lista, melyben minden elemnek azonos a struktúrája:

[
   {
       "entity": "BOX",
       "name": "ROLE_BOX_ADMIN",
       "shortDescription": "Has all other roles on Box",
       "group": "general",
       "priority": 0,
       "field": "",
       "hasRole": 1,
       "enabledByGroup": 0,
       "sourceGroups": [],
       "enabledByUser": 0,
       "disabledByUser": 0,
       "enabledByRole": 1,
       "sourceRoles": [
           "ROLE_GOD",
           "ROLE_ADMIN"
       ],
       "enabledBySystem": 0
   },
   {
       "entity": "BOX",
       "name": "ROLE_BOX_VIEW_ALLFIELDS",
       "shortDescription": "View Box item's all fields",
       "group": "field",
       "priority": 0,
       "field": "ALLFIELDS",
       "hasRole": 1,
       "enabledByGroup": 0,
       "sourceGroups": [],
       "enabledByUser": 0,
       "disabledByUser": 0,
       "enabledByRole": 1,
       "sourceRoles": [
           "ROLE_BOX_ADMIN",
           "ROLE_GOD",
           "ROLE_ADMIN",
           "ROLE_BOX_EDIT_ALLFIELDS"
       ],
       "enabledBySystem": 0
   },
]

Egy elem struktúrája:

  • entity
    • string
    • melyik entitáshoz tartozik az adott jog
  • name
    • string
    • mi a pontos neve az adott jognak
    • ezt kell beállítani a felhasználónál, vagy a felhasználói csoportnál (lásd a UserRole, illetve RoleGroup entitások dokumentációját)
  • shortDescription
    • string
    • a jog rövid leírása
  • group
    • string
    • milyen fajta jogról van szó
    • lehetséges értékek:
      • general
        • az adott enittásra vonatkozó általános jog
      • field
        • az adott entitás mezőire vonatkozó jog
  • priority
    • number
    • a jog prioritása
    • rendezés miatt van rá szükség
    • az elemek entitás és priority mező szerint rendezve jönnek vissza az API-tól
  • field
    • string
    • ha field group-ba tartozik a jog, akkor melyik mezőhöz tartozik
  • hasRole
    • number
    • az adott felhasználó, vagy felhasználói csoport rendelkezik-e ezzel a joggal
  • enabledByGroup
    • number
    • csak felhasználónál van értelmezve
    • csoport miatt rendelkezik-e ezzel joggal
    • amennyiben egy csoport miatt rendelkezik egy joggal, azt meg lehet vonni tőle a UserRole.restrictedRoles mező szerkesztésével
    • csak akkor lehet 1, ha rendelkezik ezzel a joggal
  • sourceGroups
    • objektum lista
    • csak felhasználónál van értelmezve
    • csak akkor tartalmaz bármit, ha az enabledByGroup mező értéke 1, illetve, ha az API-t meghívó felhasználónak van RoleGroup listázási joga
    • azoknak a csoportoknak a listája, amik miatt ezzel a joggal rendelkezik a felhasználó
    • egy elem struktúrája:
      • id
        • string
        • az adott RoleGroup azonosítója
      • name
        • string
        • az adott RoleGroup neve
  • enabledByUser
    • number
    • csak felhasználónál van értelmezve
    • közvetlenül az adott felhasználónak van-e beállítva ez a jog, és ezért rendelkezik vele
    • csak akkor lehet 1, ha rendelkezik ezzel a joggal
  • disabledByUser
    • number
    • csak felhasználónál van értelmezve
    • le van-e az adott felhasználónál közvetlenül tiltva ez a jog
    • csak akkor lehet 1, ha nem rendelkezik ezzel a joggal
  • enabledByRole
    • number
    • egy másik jog miatt automatikusan rendelkezik-e ezzel a joggal
    • ezek tipikusan az ADMIN, illetve az ALLFIELDS jogok, ezért ha egy másik jog miatt rendelkezik a felhasználó egy joggal, akkor azt nem lehet tőle megvonni
    • csak akkor lehet 1, ha rendelkezik ezzel a joggal
  • sourceRoles
    • string lista
    • azoknak a jogok nevének a listája, amik miatt ezzel a joggal rendelkezik a felhasználó vagy a felhasználói csoport
    • csak akkor tartalmaz bármit, ha az enabledByRole mező értéke 1
  • enabledBySystem
    • number
    • a rendszer által, a jogosultsági beállításoktól független jog
    • tipikusan a portál tulajdonos szokott a rendszertől megkapni jogokat, a többi felhasználó nem
    • csak akkor lehet 1, ha rendelkezik ezzel a joggal