Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mikä on ero HasperMissionTon ja HasanyPermissionin välillä


Mikä on ero HasperMissionTon ja HasanyPermissionin välillä


Ero `HasperMissionTo` ja` HasanyPermissionTo` välillä Spatie Laravel -lupapaketin yhteydessä on siinä, kuinka ne tarkistavat käyttäjän käyttöoikeudet:

- HasperMissionTo tarkistaa, onko käyttäjällä tietty yksittäinen lupa. Se palauttaa "tosi", jos käyttäjällä on tarkka lupa, joko suoraan määritetty tai peritty roolien kautta, ja "vääriä" muuten. Voit siirtää luvanimen, tunnuksen tai lupaobjektin tähän menetelmään. Se on hyödyllistä, kun haluat tarkistaa yhden tietyn luvan käyttäjälle.

- HasanyPermissionTo tarkistaa, onko käyttäjällä * * jokin * monista käyttöoikeuksista, jotka on läpäissyt taulukon tai luettelon. Se palauttaa "tosi", jos käyttäjällä on ainakin yksi määritellyistä käyttöoikeuksista, ja "false", jos mikään niistä ei ole määritetty. Tämä menetelmä on kätevä, kun haluat sallia pääsyn, jos käyttäjällä on vähintään yksi lupa mahdollisista lupista.

Muita tärkeitä huomautuksia:

- Molemmat menetelmät tarkistavat suoraan käyttäjälle ja rooleista perittyjen käyttäjien osoitetut käyttöoikeudet.

- Nämä menetelmät eivät ota huomioon Laravelin porttia "ennen" takaisinsoittoja tai super-admin-ohitustoimintoja. Sitä varten sinun tulisi käyttää Laravelin "Can", "kanansi" tai "canall" -menetelmiä, jotka integroituvat porteihin ja politiikkoihin ja tukevat superadmin-logiikkaa.

- `HasPerMissionTo` on tarkoitettu yhdelle luvan tarkistukselle, kun taas` HasanyPermissionTo` on useiden käyttöoikeuksien tarkistaminen, jos joku riittää.

Yhteenvetona voidaan todeta, että `HasperMissionTo` tarkistaessasi yhtä lupaa ja käytä` HasanyPermissionTo`, kun haluat tarkistaa, onko käyttäjällä vähintään yksi lupa luettelosta. Super-adminille tai monimutkaisemmille valtuutusskenaarioille mieluummin Laravelin sisäänrakennetut "Can" -menetelmät [1] [2] [5].

Viittaukset:
[1] https://spatie.be/docs/laravel-permission/v6/basic-usage/direct-permissions
.
[3] https://github.com/spatie/laravel-permission/issues/79
.
[5] https://spatie.be/docs/laravel-permission/v6/basic-usage/role-permissions
.
[7] https://www.reddit.com/r/laravel/comments/1e78vct/strategy_for_permission_and_authorisation_design/
[8] https://www.honeybadger.io/blog/laravel-permissions-roles/