私は説明しようとします。私は電子商取引アプリケーションを開発しており、バックエンド認可を提供するために、私はラーベルポリシーをモデル(製品モデル)に適用しました。モデルのラーバルポリシーと特定のビューでの承認を回避する方法
問題は、すべてのユーザーが製品を見ることができるフロントエンドビューで同じ製品モデルを使用しようとしたときに発生します。
ルートビューが保護されていても、ポリシーを適用しないモデル(たとえば、frontend> list products)を残す方法が見つからない場合でも、ポリシーはすべてのモデルに適用されます。
例:バックエンドで見るために適用されるポリシーの:
public function view(User $user)
{
$method = (string)$this->ability;
if ($user->hasRole($this->Model) === null) {
return 0;
}
return $user->hasRole($this->Model)->$method;
}
私は、ユーザーに許可を要求することなく、フロントエンドの製品を一覧表示する製品のポリシーで別のパブリック関数を作成することです必要なもの。
ありがとうございました。
ありがとうございます。それは問題の一部を解決します。ミドルウェアのゲストはビューをレンダリングしますが、(ポリシーのために)製品情報は表示されません。 –