Spatie Laraveli loa pakett ei toeta natiivselt rollihierarhiat ega pärandit karbist välja. See tähendab, et sellel pole sisseehitatud funktsionaalsust vanemate ja lapse suhete määratlemiseks rollide vahel, kus vanema roll pärib automaatselt kõik oma lapserollide lubad.
Kuidas spatie tegeleb rollide ja lubadega
- Rollid ja õigused salvestatakse andmebaasis eraldi üksustena.
- Lubad määratakse otse rollidele.
- Kasutajatele määratakse rollid ja nende rollide kaudu saavad nad sellega seotud õigused.
- Võite määrata ka õigustele otse kasutajatele.
- Lubade kontrollimisel vaatab pakett kõiki otse kasutajale määratud õigusi ja rollide kaudu päritud õigusi.
rollihierarhia ja pärand
- Pakett kohtleb rolle kui igasuguse hierarhiata üksustena.
- Teisele ühe rolli määramiseks või "lapsevanema rolli" määramiseks pole sisseehitatud mehhanismi, mis pärib automaatselt "lapserollide" kõik lubad [1] [4].
- Kasutajatel võib olla mitu rolli, mis võimaldab paindlikkust erinevate rollide lubade ühendamisel, selle asemel et tugineda hierarhilisele pärandile [2].
Spatiega rollihierarhia rakendamiseks levinud lähenemisviisid
Kuna Spatie ei toeta rolli pärimist, rakendavad arendajad sageli selliseid lahendusi nagu::
-Kõigi lubade määramine selgesõnaliselt kõrgema taseme rollidele: Lasterollidest lubade pärimise asemel määrate igale rollile käsitsi kõik olulised õigused, sealhulgas kõrgema taseme rollid, näiteks "super-admin", millel on kõik madalama rolli õigused [2] [5].
- ROLLID täisarvudega: mõned arendajad määravad rollidele auastme või taseme (nt 1 kasutaja jaoks, 2 moderaatori jaoks, 3 administraatori jaoks) ja rakendavad oma rakenduses loogikat õiguste andmiseks, mis põhineb kasutaja rolli auastmel, simuleerides tõhusalt hierarhiat [2].
- Mitu rolli kasutaja kohta: määrake mitu rolli kasutajatele, kes vajavad erinevate rollide kombineeritud õigusi, vältides vajadust hierarhiliste rollide järele [2].
Kokkuvõte
- Spatie pakett keskendub rollide ja lubade haldamisele eraldi, lamedate üksustena.
-See julgustab määrama õigusi otse rollidele ja kasutajatele ilma rollide ja rollide pärimiseta.
- rollihierarhia ja pärand tuleb vajadusel käsitsi rakendada, tavaliselt määrates õigused selgesõnaliselt või kasutades kohandatud paremusloogikat.
- See disain väldib võimalikke probleeme, kui vanema rolli lubad sõltuvad lasterollidest, mis võib põhjustada turvalisuse või juhtimise keerukust [1] [2] [4].
Ehkki Spatie pakub kindlat ja paindlikku lubade süsteemi, ei tegele see rollihierarhia ja pärandi sisemiselt; Arendajad peavad kavandama oma strateegiad, et vajadusel sellise käitumise simuleerida.
Tsitaadid:
[1] https://github.com/spatie/laravel-permmission/issues/685
]
[3] https://spatie.be/docs/laravel-permmission/v6/iscroduction
]
]
]
[7] https://www.youtube.com/watch?v=3hsbjcvwh78
[8] https://spatie.be/docs/laravel-permmission/v6/basic-usage/role-permissions
]
]
]