Por que o método de política não é chamado?

8

Eu usei o gerador para gerar uma política simples:

php artisan make:policy TeamPolicy

E eu registrei em AuthServiceProvider como:

 protected $policies = [
        Team::class => TeamPolicy::class,
    ];

Eu tentei chamá-lo no TeamsController como:

$this->authorize('update', $team);

Aqui está o meu arquivo de políticas Policies\TeamPolicy.php as:

<?php
namespace App\Policies;
use App\Team;
use Illuminate\Auth\Access\HandlesAuthorization;
class TeamPolicy
{
    use HandlesAuthorization;
    /**
     * Create a new policy instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }
    public function update( Team $team)
    {
        App:debug("Policy update called!");
        return true;
    }
}

No entanto, o método de atualização na política nunca é chamado e recebo o erro 403 ao chamar $this->authorize('update', $team);

Por favor, avise!

    
por WingsOfAltair 25.01.2017 в 12:20
fonte

1 resposta

2

O primeiro argumento dos métodos de política deve ser o usuário para verificar a autorização. Tente em vez disso:

public function update(User $user, Team $team)
{
    //...
}
    
por alepeino 30.01.2017 / 14:01
fonte