/**
  * @param MediaInterface $mixed
  *
  * @return FacadeInterface
  */
 public function transform($mixed, $folderId = null)
 {
     $facade = $this->newFacade();
     $facade->name = $mixed->getMediaType();
     $facade->translatedName = $this->translator->trans('open_orchestra_media_admin.media_filter.' . $mixed->getMediaType());
     $facade->addLink('_filter', $this->generateRoute('open_orchestra_api_media_list', array('folderId' => $folderId, 'mediaType' => $facade->name)));
     return $facade;
 }
 /**
  * Vote for $action on $folder not owned by $user
  * A user can act on someone else's media if he has the matching super role and the media is located into a folder is in his perimeter
  *
  * @param string         $action
  * @param MediaInterface $media
  * @param UserInterface  $user
  *
  * @return bool
  */
 protected function voteForSomeoneElseSubject($action, $media, UserInterface $user)
 {
     $requiredRole = ContributionRoleInterface::MEDIA_CONTRIBUTOR;
     switch ($action) {
         case ContributionActionInterface::EDIT:
             $requiredRole = ContributionRoleInterface::MEDIA_SUPER_EDITOR;
             break;
         case ContributionActionInterface::DELETE:
             $requiredRole = ContributionRoleInterface::MEDIA_SUPER_SUPRESSOR;
             break;
     }
     return $user->hasRole($requiredRole) && $this->isSubjectInPerimeter($media->getMediaFolder()->getPath(), $user, MediaFolderInterface::ENTITY_TYPE);
 }
 /**
  * Assert that the original file is removed
  * 
  * @param MediaInterface $media
  */
 protected function assertOriginalRemoved($media)
 {
     if ($media->getFilesystemName() != '') {
         Phake::verify($this->fileSystem)->remove(array($this->tmpDir . DIRECTORY_SEPARATOR . $media->getFilesystemName()));
     } else {
         Phake::verify($this->fileSystem, Phake::never())->remove(Phake::anyParameters());
     }
 }