Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mis vahe on haspermissionto ja hasynypermissionTo vahel


Mis vahe on haspermissionto ja hasynypermissionTo vahel


Erinevus Spatie Laraveli loapaketi kontekstis peitub selle vahel, kuidas nad kontrollivad kasutaja õigusi, vahepeal:

- HaspermissionTo kontrollib, kas kasutajal on konkreetne üksik luba. See tagastab "True", kui kasutajal on see täpne luba, kas rollide kaudu otse määratud või päritud, ja "vale". Sellele meetodile saate anda loa nime, ID või lubaobjekti. See on kasulik, kui soovite kontrollida kasutaja jaoks ühte konkreetset luba.

- HasyPermissionTo kontrollib, kas kasutajal on * mõni * üks mitmest massiivi või loendist üle antud õigusest. See tagastab "tõese", kui kasutajal on vähemalt üks määratletud lubadest ja "vale", kui ühtegi neist ei määrata. See meetod on mugav, kui soovite lubada juurdepääsu, kui kasutajal on võimalike lubade komplektist vähemalt üks luba.

Täiendavad olulised märkused:

- Mõlemad meetodid kontrollivad nii kasutajale määratud õigusi kui ka rollidest päritud õigusi.

- Need meetodid ei arvesta Laraveli värava "enne" tagasihelistamist ega ülitäpseid ümbersõidu funktsioone. Selleks peaksite kasutama Laraveli Can'i, `canany" või "canall" meetodeid, mis integreeruvad väravate ja poliitikatega ning toetavad ülivadmiini loogikat.

- `HaspermissionTo` on ühe lubade kontrollimiseks, samal ajal kui" HasyPlemission "on selleks, et kontrollida mitmeid õigusi, kui üks neist piisab.

Kokkuvõtlikult kasutage ühe loa kontrollimisel kasutage `haspermmissionTO -d ja kasutage` hasyPermissionTO ", kui soovite kontrollida, kas kasutajal on loendist vähemalt üks luba. Super-admin või keerukamate autoriseerimisstsenaariumide jaoks eelistage Laraveli sisseehitatud CAN-meetodeid [1] [2] [5].

Tsitaadid:
[1] https://spatie.be/docs/laravel-permmission/v6/basic-usage/direct-permissions
]
[3] https://github.com/spatie/laravel-permmission/issues/79
]
[5] https://spatie.be/docs/laravel-permmission/v6/basic-usage/role-permissions
]
]
[8] https://www.honeybadger.io/blog/laravel-permissions-roles/