Example #1
0
 public function filter()
 {
     //if(Auth::guest()) return Redirect::guest('login');
     $user = \Auth::user();
     //Determinar ruta para determinar acción
     $ruta_actual = \Route::current()->getUri();
     $accion = \Accion::whereRuta($ruta_actual)->with('modulos')->get();
     //Consultar modulo(s) al que pertenece la acción
     $modulos_accion = $accion[0]->modulos;
     //Consultar roles que permiten el acceso al modulo
     foreach ($modulos_accion as $modulo) {
         $arr_roles_id_modulo[] = $modulo->roles[0]->id;
     }
     //Consultar roles del usuario
     $roles_usuario = $user->roles;
     foreach ($user->roles as $role) {
         $arr_roles_id_usuario[] = $role->id;
     }
     //Validar roles del usuario contra roles del módulo
     $arr_validacion = array_intersect($arr_roles_id_usuario, $arr_roles_id_modulo);
     if (count($arr_validacion) == 0) {
         /**
          * @todo Redireccionar a página de inicio del usuario
          */
         return \Redirect::to('/')->with('flash_message', 'No tiene los derechos para acceder a este módulo');
     }
 }