Dans Laravel 5.4, je fais un fournisseur de services personnalisé pour montrer des routes spécifiques. Mon code fonctionne correctement mais je suis confronté à un problème. Le problème est que si l'utilisateur ABC
assigner deux voies (menu de) par exempleLes fournisseurs de services Laravel valident les routes
user\list
user\form
Maintenant, si l'utilisateur essaie d'appeler ABC
autre URL comme user\show_form
si l'utilisateur peut accéder à cette ABC
routes (menu). Donc, il est possible si l'utilisateur ABC n'a pas les droits d'accès user\show_form
et l'utilisateur essaie d'accéder à ces routes (menu), il redirige vers la page 404.
Mon Fournisseur
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);
});
}
}
S'il vous plaît me suggérer comment résoudre.
comment puis-je mettre 'variable globale $ menu' dans UserNavigationServiceProvider –
Donc' menu' variable globale $ je peux accéder à un contrôleur –
Vous pouvez créer une façade avec une méthode setter et un getter. Définissez sa valeur à partir de UserNavigationServiceProvider et utilisez les méthodes get dans le contrôleur pour obtenir cette valeur. Ou vous pouvez le définir en session. Espérons que cela aide .. – sp11