#laravel #laravel-7 #laravel-permission
#laravel #laravel-7 #laravel-разрешение
Вопрос:
Я пытаюсь запретить пользователю доступ к странице. Я использую https://spatie.be/docs/laravel-permission/v3/introduction в моем приложении laravel.
Проблема, с которой я сталкиваюсь, заключается в том, что пользователь по-прежнему может получить доступ к странице, даже если разрешение отключено.
Итак, у меня есть страница под названием user-info.blade.php это позволяет пользователю читать и обновлять информацию о пользователе, и только определенные люди могут это сделать.
У меня есть 2 разрешения manage users
и view users
. manage users
позволяет обновлять и удалять пользователя, который, как view users
единственный, позволяет вам просматривать их.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я manage users
отключаюсь для пользователя, этот пользователь все еще может получить доступ к этой странице. Все мои элементы пользовательского интерфейса исчезают, например, мои кнопки, но если я перейду на эту страницу непосредственно с URL-адреса, я все равно смогу получить к ней доступ.
Это в моем api.php
Route::get('/manage-users', [ UserController::class, 'manageUsers'])->middleware('can:manage users');
Route::get('/users', [ UserController::class, 'getUsers'])->middleware('can:view users');
Я не уверен, какой другой код добавить к моему вопросу или какую другую информацию предоставить.
Ответ №1:
(Я бы предпочел поместить свой ответ в качестве комментария, но, поскольку я не могу прокомментировать, я публикую его как ответ.)
Если я понимаю ваше user-info.blade.php страница доступна как manage users
для разрешений, так и view users
для разрешений. Если это так, отключение manage users
разрешения только помешает им обновлять информацию, они все равно смогут просматривать данные (что означает, что они могут получить доступ к странице). Вам, вероятно, тоже нужно отключить view users
, если вы не хотите, чтобы они получали доступ к странице.
И я не понимаю, почему вы используете api
, чтобы запретить пользователям доступ к странице.