В Laravel 5.4 я создаю одного настраиваемого поставщика услуг для отображения определенных маршрутов. Мой код работает правильно, но я столкнулся с одной проблемой. Проблема в том, что если пользователь ABC
назначит, например, два маршрута (меню)
user\list
user\form
Теперь, если пользователь ABC
попытается вызвать другой URL-адрес, например user\show_form
, пользователь ABC
сможет получить доступ к этому маршруту (меню). Таким образом, возможно, если пользователь ABC не имеет прав доступа к user\show_form
, и пользователь пытается получить доступ к этим маршрутам (меню), он перенаправляется на страницу 404.
Мой поставщик услуг
class UserNavigationServiceProvider extends ServiceProvider {
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot() {
$this->getUserNavigation();
}
/**
* Register the application services.
*
* @return void
*/
public function register() {
//
}
/**
* getUserNavigation() function use for after user login
* fetch the rights
* @return void
*/
private function getUserNavigation() {
$user_permission = user_permission();
View::composer('admin.navbar', function($view) use ($user_permission) {
$auth_user = Auth::user();
$user_id = $auth_user->id;
$user_group = UserPermissionsGroup::select('user_permissions_id')
->where('user_id', $user_id)
->get()
->toArray();
$menu = array();
foreach ($user_group as $k => $v) {
foreach($v as $kv) {
$menu[$kv] = id_to_text($kv, $user_permission);
}
}
$view->with('menu_list', $menu);
});
}
}
Пожалуйста, предложите мне, как решить.