<?php
namespace App\Security\Voter\Conversation;
use App\Entity\Account\User;
use App\Entity\ChannelUserData\ChannelUserData;
use App\Entity\Chat\Conversation;
class ShowVoter extends AbstractConversationVoter
{
public function supportedAttribute(): string
{
return 'NIM_VIEW';
}
/**
* @param User $user
* @param Conversation $conversation
* @param ChannelUserData $channelUserData
* @return int
*/
public function grant(User $user, $conversation, ChannelUserData $channelUserData): int
{
if ($this->userService->isAdminForConversation($user, $conversation)) {
return self::ACCESS_GRANTED;
}
$conversationUser = $conversation->getConversationUserByUser($user);
if (!$conversationUser) {
return self::ACCESS_DENIED;
}
return self::ACCESS_GRANTED;
}
}