<?php
namespace App\Security\Voter\Message;
use App\Entity\Account\User;
use App\Entity\ChannelUserData\ChannelUserData;
use App\Entity\Chat\Message;
use App\Service\Account\UserService;
class EditVoter extends AbstractMessageVoter
{
public function __construct(
UserService $userService,
) {
parent::__construct($userService);
}
/**
* @param Message $subject
* @param User $user
* @return bool
*/
protected function denyBeforeCheck($subject, User $user): bool
{
return $subject->getCreatedBy()->getId() !== $user->getId();
}
public function supportedAttribute(): string
{
return 'NIM_EDIT';
}
protected function grant(User $user, $subject, ChannelUserData $channelUserData): int
{
return self::ACCESS_GRANTED;
}
}