Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kāda ir atšķirība starp hasperissionto un hasanyperiseTo


Kāda ir atšķirība starp hasperissionto un hasanyperiseTo


Atšķirība starp `hasperissionto` un` hasanyperissionto` SPATIE LARAVEL atļaujas paketes kontekstā ir tā, kā viņi pārbauda lietotāju atļaujas:

- HasperissionTo pārbauda, ​​vai lietotājam ir noteikta atsevišķa atļauja. Tas atgriežas “patiess”, ja lietotājam ir precīza atļauja, kas ir tieši piešķirta vai mantota, izmantojot lomas, un “viltus”. Šai metodei varat nodot atļaujas nosaukumu, ID vai atļaujas objektu. Tas ir noderīgi, ja vēlaties pārbaudīt vienu konkrētu atļauju lietotājam.

- Hasanyperissiono pārbauda, ​​vai lietotājam ir * kāda no vairākām atļaujām, kas nodota kā masīvs vai saraksts. Tas atgriežas “patiess”, ja lietotājam ir vismaz viena no norādītajām atļaujām, un `viltus”, ja neviens no viņiem netiek piešķirts. Šī metode ir ērta, ja vēlaties atļaut piekļuvi, ja lietotājam ir vismaz viena atļauja no iespējamo atļauju kopas.

Papildu svarīgas piezīmes:

- Abas metodes pārbauda atļaujas, kas piešķirtas tieši lietotājam, kā arī tām, kas mantotas no lomām.

- Šīs metodes neuzskata Laravel's Gate `pirms atzvanīšanas vai super-admin apvedceļa funkcionalitātes. Tādēļ jums vajadzētu izmantot Laravel's `Can`,` kanāni vai `kanāla metodes, kas integrējas ar vārtiem un politikām un atbalsta super-admin loģiku.

- "Hasperissionto" ir paredzēta vienai atļaujas pārbaudei, savukārt "hasanyperissionto" ir paredzēta vairāku atļauju pārbaudei, kur pietiek.

Rezumējot, pārbaudot vienu atļauju, izmantojiet `hasperissionto`, un izmantojiet` hasanyperissionto`, kad vēlaties pārbaudīt, vai lietotājam ir vismaz viena atļauja no saraksta. Super-Admin vai sarežģītākiem autorizācijas scenārijiem, tā vietā dodieties Laravel iebūvētajā “Can` metodes [1] [2] [5].

Atsauces:
[1] https://spatie.be/docs/laravel-permission/v6/basic-usage/direct-permissions
[2] https://stackoverflow.com/questions/58093970/spatie-laravel-permissions-gate-and-hasperissionto-are-Norking
[3] https://github.com/spatie/laravel-perission/issues/79
[4] https://discuss.flarum.org/d/4817-Difference-weenween-user-can-and-user-haspermission
[5] https://spatie.be/docs/laravel-permission/v6/basic-usage/role-permissions
[6.]
[7] https://www.reddit.com/r/laravel/comments/1e78vct/strategy_for_permission_and_authorisation_design/
[8] https://www.honeybadger.io/blog/laravel-permissions-roles/