Позволяет ли Laravel добавлять несколько политик для модели? То есть Рассмотрим App\Providers\ASuthServiceProvider
«s $policies
свойство:Несколько политик для модели - Laravel
protected $policies = [
'App\Team' => 'App\Policies\TeamPolicy',
'App\Team' => 'App\Policies\RoundPolicy',
'App\Team' => 'App\Policies\AnotherPolicy',
];
Я не проверял его в приложении, потому что даже если он работал, я бы здесь задают подобный вопрос, относительно этого, считается ли плохая практика или склонны к неожиданным поведение.
Альтернативы у меня есть очень грязная политика, содержащая политику в отношении несколько контроллеров, названной в ГорбатыйРегистр:
/**
* Allows coach of Team and admin to see the Team management view.
* Used in TeamManagementController
*
* @param App\User $user
* @param App\Team $team
* @return boolean
*/
public function manage(User $user, Team $team)
{
return $user->id === $team->user_id || $user->isAdmin();
}
/**
* Allows a coach to detach themself from a Team.
* Used in TeamController
*
* @param App\User $user
* @param App\Team $team
* @return boolean
*/
public function detach(User $user, Team $team)
{
return $user->id === $team->user_id;
}
/**
* Below function are used for controllers other than TeamController and TeamManagementController.
* Reason: We need to authorize, based on a Team. Hence, using this Policy.
*/
/**
* Allows coach of Team, as well as admin to view players of a Team.
* Used in PlayerController
*
* @param App\User $user
* @param App\Team $team
* @return boolean
*/
public function indexPlayers(User $user, Team $team)
{
return $user->id === $team->user_id || $user->isAdmin();
}
/**
* Allows coach of Team, as well as admin to view players of a Team as an array.
* Used in PlayerController
*
* @param App\User $user
* @param App\Team $team
* @return boolean
*/
public function fetchPlayers(User $user, Team $team)
{
return $user->id === $team->user_id || $user->isAdmin();
}
и т.д. и т.п.
советов будут оценены :)
Возможно, вы можете просто расширить класс политики, чтобы добавить больше функциональности –