public function filterLocalizedFields(Object\AbstractObject $object, $objectData)
 {
     if (!$object instanceof Object\Concrete) {
         return $objectData;
     }
     $user = Tool\Admin::getCurrentUser();
     if ($user->getAdmin()) {
         return $objectData;
     }
     $fieldDefinitions = $object->getClass()->getFieldDefinitions();
     if ($fieldDefinitions) {
         $languageAllowedView = Object\Service::getLanguagePermissions($object, $user, "lView");
         $languageAllowedEdit = Object\Service::getLanguagePermissions($object, $user, "lEdit");
         foreach ($fieldDefinitions as $key => $fd) {
             if ($fd->getFieldtype() == "localizedfields") {
                 foreach ($objectData["data"][$key]["data"] as $language => $languageData) {
                     if (!is_null($languageAllowedView) && !$languageAllowedView[$language]) {
                         unset($objectData["data"][$key]["data"][$language]);
                     }
                 }
             }
         }
         $this->setLayoutPermission($objectData["layout"], $languageAllowedView, $languageAllowedEdit);
     }
     return $objectData;
 }
 /**
  * Flattens object data to an array with key=>value where
  * value is simply a string representation of the value (for objects, hrefs and assets the full path is used)
  *
  * @param Object\AbstractObject $object
  * @return array
  */
 protected function csvObjectData($object)
 {
     $o = array();
     foreach ($object->getClass()->getFieldDefinitions() as $key => $value) {
         //exclude remote owner fields
         if (!($value instanceof Object\ClassDefinition\Data\Relations\AbstractRelations and $value->isRemoteOwner())) {
             $o[$key] = $value->getForCsvExport($object);
         }
     }
     $o["id (system)"] = $object->getId();
     $o["key (system)"] = $object->getKey();
     $o["fullpath (system)"] = $object->getFullPath();
     $o["published (system)"] = $object->isPublished();
     $o["type (system)"] = $object->getType();
     return $o;
 }