Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka Spatie käsittelee roolihierarkiaa ja perintöä


Kuinka Spatie käsittelee roolihierarkiaa ja perintöä


Spatie's Laravel -lupapaketti ei tue natiivisesti roolihierarkiaa tai perintöä laatikosta. Tämä tarkoittaa, että sillä ei ole sisäänrakennettua toimintoa vanhempien ja lasten suhteiden määrittelemiseksi roolien välillä, joissa vanhempi rooli perii automaattisesti kaikki lapsirooliensa käyttöoikeudet.

Kuinka Spatie käsittelee rooleja ja käyttöoikeuksia

- Roolit ja käyttöoikeudet tallennetaan tietokantaan erillisinä kokonaisuuksina.
- Käyttöoikeudet on osoitettu suoraan rooleille.
- Käyttäjille annetaan roolit, ja näiden roolien kautta he saavat siihen liittyvät käyttöoikeudet.
- Voit myös antaa käyttöoikeudet suoraan käyttäjille.
- Kun tarkistetaan käyttöoikeuksia, paketti tarkastelee kaikkia käyttäjälle osoitettuja käyttöoikeuksia sekä roolien kautta perittyjä.

roolihierarkia ja perintö

- Paketti kohtelee rooleja tasaisina kokonaisuuksina ilman hierarkiaa.
- Ei ole sisäänrakennettua mekanismia, joka osoittaa yhden roolin toiselle tai "vanhemman roolin", joka perii automaattisesti kaikki "lapsiroolien" käyttöoikeudet [1] [4].
- Käyttäjillä voi olla useita rooleja, mikä mahdollistaa joustavuuden yhdistämisessä eri rooleista sen sijaan, että luottaisi hierarkkiseen perintöön [2].

Yleiset lähestymistavat roolihierarkian toteuttamiseksi Spatie kanssa

Koska Spatie ei tue roolin perimistä, kehittäjät toteuttavat usein kiertotapoja, kuten:

-Kaikkien käyttöoikeuksien määrittäminen nimenomaisesti korkeamman tason rooleille: Sen sijaan, että peritään käyttöoikeuksia lapsirooleista, määrität manuaalisesti kaikki asiaankuuluvat käyttöoikeudet jokaiselle roolille, mukaan lukien korkeamman tason roolit, kuten "super-admin", joilla on kaikki alhaisempien roolien käyttöoikeudet [2] [5].

- Rankinta roolit Kokonaislukuarvoilla: Jotkut kehittäjät määrittävät roolin tai tason roolille (esim. 1 käyttäjälle, 2 moderaattorille, 3 järjestelmänvalvojalle) ja toteuttavat sitten logiikan sovelluksessaan apurahoihin käyttäjän rooliryhmän perusteella, simuloimalla tehokkaasti hierarkiaa [2].

- Useita rooleja käyttäjää kohti: Määritä useita rooleja käyttäjille, jotka tarvitsevat eri roolien yhdistettyjä käyttöoikeuksia, välttäen hierarkkisten roolien tarvetta [2].

Yhteenveto

- Spatie -paketti keskittyy roolien ja käyttöoikeuksien hallintaan erillisinä, tasaisina kokonaisuuksina.
-Se rohkaisee käyttöoikeuksien määrittämistä suoraan rooleille ja käyttäjille ilman roolin perinnöllisiä.
- Hierarkia ja perintö on toteutettava tarvittaessa manuaalisesti, tyypillisesti määrittämällä käyttöoikeudet tai käyttämällä räätälöityjä logiikkaa.
- Tämä suunnittelu välttää mahdolliset kysymykset, joissa vanhemman roolin käyttöoikeudet riippuvat lasten roolista, mikä voi aiheuttaa turvallisuuden tai johtamisen monimutkaisuuksia [1] [2] [4].

Siten, vaikka Spatie tarjoaa vankan ja joustavan käyttöoikeusjärjestelmän, se ei käsittele roolihierarkiaa ja perintöä sisäisesti; Kehittäjien on suunniteltava omat strategiansa tarvittaessa tällaisen käyttäytymisen simuloimiseksi.

Viittaukset:
[1] https://github.com/spatie/laravel-permission/issues/685
[2] https://www.reddit.com/r/laravel/comments/jrHKC9/struggling_to_create_hierarchy_of_permissions_in/
[3] https://spatie.be/docs/laravel-permission/v6/introduction
.
.
[6] https://www.reddit.com/r/laravel/comments/1e78vct/strategy_for_permission_and_authorisation_design/
[7] https://www.youtube.com/watch?v=3HSBJCVWH78
[8] https://spatie.be/docs/laravel-permission/v6/basic-usage/role-permissions
.
.
.