2016-07-21 4 views
0

Comment pouvez-vous permettre à la fois l'auteur de la publication et l'auteur d'un commentaire de le supprimer? Je veux dire, l'auteur des messages peut supprimer tous les commentaires sous ses messages, tandis que l'auteur d'un commentaire ne peut supprimer que les commentaires qu'il a laissés.définir une politique pour Commentaires supprimant que vérifie auteur de commentaire ou auteur de publication (laravel)

Jusqu'à présent, j'ai une classe commentPolicy qui fonctionne comme ceci:

class CommentPolicy 
{ 
    public function deleteComment(User $user, Comment $comment) 
    { 

     return $user->id === $comment->user_id; 

    } 

} 

Bien sûr, cela fonctionne pour l'auteur du commentaire. Ce que je pense est que je devrais permettre à l'auteur des messages de supprimer des commentaires dans la classe postPolicy. Ce que je il y a:

class PostPolicy 

{ 

    public function seePostOptions(User $user, Post $post) 
    { 
     return $user->id === $post->user_id; 
    } 


} 

En ce moment, l'auteur du message peut voir quelques options pour modifier/supprimer/commentaire sur le post. Je pensais peut-être que je devrais juste mettre deux @can('deleteComment', $c)<>delete button<>@endcan et @can('seePostOptions' $i)<>delete button<>@endcan mais cela se traduira par un double bouton pour tous les commentaires laissés par l'auteur de la poste sous son poste.

Répondre

0

la solution utilise la directive @else comme ceci:

@can('deleteComment', $c) 
<p>delete</p> 
@else 
@can('seePostOptions', $i) 
<p>delete</p> 
@endcan 
@endcan