Usuario:ManuelRomero/Laravel/autorizacion/gate

De WikiEducator
Saltar a: navegación, buscar



Qué son las Gate

  • Establecemos si un usuario tiene autorización para dceterminada acción.
  • Se escriben en
App\Providers\AuthServiceProvider@boot
  • Usaremos la facade Gate para establecerlas
  • Siempre reciben como primer argumento el usuario actualmente conectado, pudiendo recibir más argumentos.

Cómo se usan

Ejemplo

  • 1.- Creo una gate



Principales métodos de Gate

define($ability, $callback):

El método define se utiliza para definir una habilidad personalizada en la puerta. Una habilidad es una acción que se verifica en las políticas. El callback asociado debe devolver true o false para indicar si un usuario tiene permiso para realizar la acción.

before($callback):

El método before permite establecer una función de callback que se ejecuta antes de cualquier verificación de habilidad en las políticas. Puede usarse para permitir el acceso a ciertas acciones antes de ejecutar las políticas.

after($callback)

El método after permite establecer una función de callback que se ejecuta después de cualquier verificación de habilidad en las políticas. Puede usarse para realizar acciones después de verificar las políticas.

allow($ability, $actions)

El método allow se utiliza para definir permisos para una habilidad específica. Puedes especificar qué roles o usuarios tienen permiso para realizar la habilidad.

denied($ability, $actions)

El método denied se utiliza para definir negaciones de permisos para una habilidad específica. Puedes especificar qué roles o usuarios no tienen permiso para realizar la habilidad.

check($ability, $arguments = [])

El método check verifica si el usuario actual tiene permiso para realizar una habilidad específica. Si no tiene permiso, se lanza una excepción AuthorizationException.

allows($ability, $arguments = [])

El método allows devuelve true si el usuario actual tiene permiso para realizar una habilidad específica. De lo contrario, devuelve false.

denies($ability, $arguments = [])

El método denies devuelve true si el usuario actual no tiene permiso para realizar una habilidad específica. De lo contrario, devuelve false.

beforeCallback($callback)

El método beforeCallback te permite establecer un callback global que se ejecuta antes de cualquier verificación de habilidad. Puede usarse para aplicar lógica global de autorización.