<?php
namespace App\Security\Voter\Library;
use App\Entity\PersonalFolder;
use App\Entity\PersonalResource;
use App\Entity\User;
/**
* Class PersonalLibraryVoter.
*/
class PersonalLibraryVoter extends LibraryVoter
{
/**
* {@inheritdoc}
*/
protected function supports($attribute, $subject): bool
{
return in_array($attribute, self::PERMISSIONS) &&
($subject instanceof PersonalResource || $subject instanceof PersonalFolder);
}
/**
* {@inheritdoc}
*/
public function canDelete($resource, User $user): bool
{
return $resource->getUser()->getId() === $user->getId();
}
/**
* {@inheritdoc}
*/
public function canStar($resource, User $user): bool
{
return $resource->getUser()->getId() === $user->getId();
}
/**
* {@inheritdoc}
*/
public function canRestore($resource, User $user): bool
{
return $resource->getUser()->getId() === $user->getId();
}
/**
* {@inheritdoc}
*/
public function canPermanentDelete($resource, User $user): bool
{
return $resource->getUser()->getId() === $user->getId();
}
/**
* {@inheritdoc}
*/
public function canDownload($resource, User $user): bool
{
return $resource->getUser()->getId() === $user->getId();
}
/**
* {@inheritdoc}
*/
public function canEditName($resource, User $user): bool
{
return $resource->getUser()->getId() === $user->getId();
}
}