Agregar políticas de acceso
Comprar curso

103. Agregar políticas de acceso


2 comentarios

Inicia sesión para comentar

Comentarios:

  • Pedro Bastidas

    Pedro Bastidas hace 1 año

    Una pregunta es posible que en lugar de mostrar el mensaje de no autorizado, redirigir al usuario a otra pagina ? por ejemplo al inicio ? lo intente hacer pero la policy retorna como true 

    • Victor Arana Flores hace 1 año

      Hola Pedro, en ese caso deberías trabajar con un middleware.

      Los middleware te permiten intersectar una peticcion HTTP, y dependiendo de si cumple una acción permitirle el paso o redirigirlo hacia otra ruta.

      Por si te preguntas cuando usar uno y cuando usar otro. Middleware usalo cuando necesitas redirigir al usuario a otro lado cuando no cumpla una condición. Mientras que los policies y gates aparte de inpedir el paso, te sirve para ocultar alguna sección de tu pagina. POr ejemplo postrar un enlace que te dirija al panel administrador, solo si es que eres administrador.

    • Pedro Bastidas hace 1 año

      gracias master

  • Xavier Montalvo

    Xavier Montalvo hace 1 año

    Creo que en la segunda policy estas mal. Debería prohibirte el paso en caso de que el status sea igual a ‘2’  ya que seria ilógico volver a pagar algo que ya fue pagado y caso contrario (en caso de que este en status ‘1’) debería permitirte el paso. Corrígeme si me equivoco por favor Victor.

    Saludos.

    • Xavier Montalvo hace 1 año

          public function payment(User $user, Order $order){
              if ($order->status == 2) {
                  return false;
              }else{
                  return true;
              }
          }
    • Victor Arana Flores hace 1 año

      Hola Xavier, la verdad no tengo fresco el tema ya que lo grabe hace mucho. Pero en todo caso, si hay algun error este se soluciona en el curso :D

    • Jheyner David Ibagon hace 1 año

      Hola, en la policy lo deje asi siendo Order::PENDING estado 1.

      public function payment(User $user, Order $order){
      	if ($user->id == $order->user_id && $order->status == Order::PENDING) {
            return true;
          } else {
            return false;
          }
       }