【发布时间】:2017-07-26 07:17:23
【问题描述】:
在 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);
});
}
}
请建议我如何解决。
【问题讨论】:
标签: php laravel-5 laravel-5.4 service-provider laravel-middleware