eZPublishCommunityProject  Trunk
Todo List
Member eZ::isInternalIPAllowed ($ip)
Check subnets
Class eZ
Refactor into two passes, since they're very very close.
Class eZ
The tag is much more limited in scope than the name shows. Refactor. More ways to map ?
Member eZ::publishVersion (VersionInfo $versionInfo)
Introduce null|int ContentType->versionArchiveLimit to be able to let admins override this per type.
Member eZ::__construct ($target, $operator, $value, Value $valueData=null)
Add a dedicated exception
Member eZ::createFromQueryBuilder ($target, $operator, $value)
needs to be updated for $matchAlwaysAvailable
Class eZ
: check hierarchical facets
Class eZ
: check hierarchical facets
Member eZ::getProperties ($dynamicProperties=array())
Make object traversable and reuse this function there (hence why this is not exposed)
Class eZ
Add a exception type in API that uses Logic exception and change this to extend it
Member eZ::getSortInfo (BaseValue $value)
String normalization should occur here.
Member eZ::getSortInfo (BaseValue $value)
Correct?
Member eZ::SELECTION_BROWSE
Consider to add all 6 selection options
Member eZ::deleteOrphanedUrls ()
using two queries because zeta Database does not support joins in delete query. That could be avoided if the feature is implemented there.
Member eZ::getTranslatedContentNameByContentInfo (ContentInfo $contentInfo, $forcedLanguage=null)
Remove ContentService usage when translated names are available in ContentInfo (see https://jira.ez.no/browse/EZP-21755)
Member eZ::evaluate (APILimitationValue $value, APIUserReference $currentUser, ValueObject $object, array $targets=null)
Add support for $limitationValues[0] == 2 when session values can be injected somehow, or deprecate
Member eZ::getCriterion (APILimitationValue $value, APIUserReference $currentUser)
Add support for $limitationValues[0] == 2 when session values can be injected somehow, or deprecate
Member eZ::evaluate (APILimitationValue $value, APIUserReference $currentUser, ValueObject $object, array $targets=null)
Add support for $limitationValues[0] == 2 when session values can be injected somehow
Class eZ
This might be incomplete: what about the user's own http cache (user hash) ?
Class eZ
Change to clear precise cache items on content deletion (implies changes to how this signal is used and emitted).
Member eZ::purgeHttpCache (Signal $signal)
Change to be able to clear relations, siblings, ... cache, even when content is already deleted.
Class eZ
Is this right ? Does it require a full wipe of the cache ? Very unlikely. The User's Content's HTTP cache must be cleared, yes. And the user must be logged out, or its user hash cleared (not sure we can without clearing for all users)
Member eZ::loadLocation ($locationId)
Do we need to handle permissions here ?
Member eZ::urlWildcardHandler ()
Create cache implementation so we can avoid injecting persistenceHandler and logger
Member eZ::beginTransaction ()
Maybe this can be solved by contributing to Symfony, as in for instance using a layered cache with memory cache first and use saveDefered so cache is not persisted before commit is made, and ommited on rollback.
Member eZ::createConnectionFromDSN ($dsn)
retry connection here.
Member eZ::addRelation (RelationCreateStruct $createStruct)
Should the existence verifications happen here or is this supposed to be handled at a higher level?
Member eZ::removeRelation ($relationId, $type)
Should the existence verifications happen here or is this supposed to be handled at a higher level?
Member eZ::getBasicNodeData ($nodeId)
optimize
Member eZ::getBasicNodeDataByRemoteId ($remoteId)
optimize
Member eZ::moveSubtreeNodes (array $fromPathString, array $toPathString)
optimize
Member eZ::getBasicNodeData ($nodeId)
optimize
Member eZ::getBasicNodeDataByRemoteId ($remoteId)
optimize
Member eZ::getBasicNodeData ($nodeId)
optimize
Member eZ::getBasicNodeDataByRemoteId ($remoteId)
optimize
Member eZ::moveSubtreeNodes (array $fromPathString, array $toPathString)
optimize
Member eZ::copySubtree ($sourceId, $destinationParentId)

Either move to async/batch or find ways toward optimizing away operations per object.

Optionally retain dates and set creator

Member eZ::recover ($trashedId, $newParentId)
Handle field types actions
Member eZ::trashSubtree ($locationId)
Handle field types actions
Member eZ::link ($groupId, $contentTypeId, $status)
Above throws are not implemented
Member eZ::unlink ($groupId, $contentTypeId, $status)
Add throws for NotFound and BadState when group is not assigned to type
Member eZ::createGroupFromCreateStruct (GroupCreateStruct $struct)
$description is not supported by database, yet
Member eZ::link ($groupId, $contentTypeId, $status)
Above throws are not implemented
Member eZ::unlink ($groupId, $contentTypeId, $status)
Add throws for NotFound and BadState when group is not assigned to type
Member eZ::loadContentTypeDraft ($contentTypeId)
Use another exception when user of draft is someone else
Class eZ
Change this to be able to handle relations for FieldTypes in an effective manner (incl op_code handling in SPI)
Member eZ::getContentTypeDomainMapper ()
Move out from this & other repo instances when services becomes proper services in DIC terms using factory.
Member eZ::getDomainMapper ()
Move out from this & other repo instances when services becomes proper services in DIC terms using factory.
Member eZ::getNameSchemaService ()
Move out from this & other repo instances when services becomes proper services in DIC terms using factory.
Member eZ::getPermissionCriterionResolver ()
Move out from this & other repo instances when services becomes proper services in DIC terms using factory.
Member eZ::getRelationProcessor ()
Move out from this & other repo instances when services becomes proper services in DIC terms using factory.
Member eZ::loadContent ($contentId, array $languages=null, $versionNo=null, $useAlwaysAvailable=true)

Handle $versionNo = null

Handle language filters

Class eZ

Integrate FieldType fromHash()

Caching for extracted embedded objects

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)

Error handling

What about missing properties? Set them here, using the service to load? Or better set them in the service, since loading is really unsuitable here?

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)

Error handling

What about missing properties? Set them here, using the service to load? Or better set them in the service, since loading is really unsuitable here?

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Class eZ
Caching for extracted embedded objects
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::getLimitationByIdentifier ($identifier)
Use dependency injection system
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)

Error handling

Should the related ContentInfo structs really be loaded here or do we need lazy loading for this?

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)

Error handling

Use dependency injection system for Role Limitation lookup

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::copySubtree (Location $subtree, Location $targetParentLocation)
enhancement - this method should return a result structure containing the new location and a list of locations which are not copied due to permission denials.
Member eZ::assignRoleToUser (APIRole $role, User $user, RoleLimitation $roleLimitation=null)
add limitations
Member eZ::assignSection (ContentInfo $contentInfo, Section $section)
In order to make the integration test for this method running, the countAssignedContents() method must be implemented. Otherwise this should work fine.
Member eZ::getLimitationByIdentifier ($identifier)
Use dependency injection system
Member eZ::getMediaType (Request $request)
refactor, maybe to a REST Request with an accepts('content-type') method
Member eZ::loadContentTypeFieldDefinitionList ($contentTypeId)
Check why this isn't in the specs
Member eZ::loadLocationByRemoteId (Request $request)
remove, or use in loadLocation with filter
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
use url handler instead of hardcoded URL matching
Member eZ::getFieldDefinition (array $data)
depends on temporary solution to give parser access to the URL
Class eZ
coverage add test
Class eZ
coverage add test
Class eZ
coverage add test
Class eZ
coverage add test
Class eZ
coverage add test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
coverage add unit test
Class eZ
$fieldSettings & $validatorConfiguration (missing from spec)
Class eZ
needs tests
Class eZ
find better method to map for type/name
Member eZ::bulkIndexContent (array $contentObjects)
: This function and setCommit() is needed for Persistence for test speed but not part of interface for the reason described in Solr::bulkIndexContent Short: Bulk handling should be properly designed before added to the interface.
Member eZ::bulkIndexLocations (array $locations)
: This function and setCommit() is needed for Persistence for test speed but not part of interface for the reason described in Solr::bulkIndexContent Short: Bulk handling should be properly designed before added to the interface.
Member eZ::deleteLocation ($locationId, $contentId)

When we support Location-less Content, we will have to reindex instead of removing

Should we not already support the above?

The subtree could potentially be huge, so this implementation should scroll reindex

Make use of this, or remove if not needed.

Member eZ::getBoundingCoordinates (MapLocationValue $location, $distance)
it should also be possible to calculate inner bounding box, which could be applied for the operators GT, GTE and lower distance of the BETWEEN operator.
Member eZ::handle (CriteriaConverter $converter, SelectQuery $query, Criterion $criterion, array $languageSettings)
: Needs optimisation since this subselect can potentially be problematic due to large number of contentobject_id values returned. One way to fix this is to use inner joins on ezcobj_state_link table, but this is not currently supported in legacy search gateway
Member eZ::handle (CriteriaConverter $converter, SelectQuery $query, Criterion $criterion, array $languageSettings)
: Needs optimisation since this subselect can potentially be problematic due to large number of contentobject_id values returned. One way to fix this is to use inner joins on ezcontentobject_tree table, but this is not currently supported in legacy search gateway
Member eZ::loadTranslationInfos (ContentInfo $contentInfo, array $filter=array())
TBD - filter by source version, destination version and languages
Class eZ
Add VersionInfo parameter
Member eZ::addRelation (RelationCreateStruct $createStruct)
Should the existence verifications happen here or is this supposed to be handled at a higher level?
Member eZ::removeRelation ($relationId, $type)
Should the existence verifications happen here or is this supposed to be handled at a higher level?
Member eZ::setSectionForSubtree ($locationId, $sectionId)
This can be confusing (regarding permissions and main/multi location). So method is for the time being not in PublicAPI so people can instead write scripts using their own logic against the assignSectionToContent() api.
Member eZ::create ($name, $identifier)

Should validate that $identifier is unique??

What about translatable $name?

Class eZ
What about sort_field and sort_order?
Class eZ

Do we need a FieldDefinitionCreateStruct?

What about the "serialized_data_text" field in legacy storage?

Member eZ::addFieldDefinition ($contentTypeId, $status, FieldDefinition $fieldDefinition)
Add FieldDefinition?
Member eZ::updateFieldDefinition ($contentTypeId, $status, FieldDefinition $fieldDefinition)
Add FieldDefinition?
Member eZ::addPolicy ($roleId, Policy $policy)
Throw on invalid Role Id?
Member eZ::addPolicyByRoleDraft ($roleId, Policy $policy)
Throw on invalid Role Id?
Member eZ::delete ($userId)
Throw on missing user?
Member eZ::deletePolicy ($policyId, $roleId)
Throw exception on missing role / policy?
Member EzSystems::indexData (OutputInterface $output)
This should not be needed once/if the Installer starts using API in the future. So temporary measure until it is not raw SQL based for the data itself (as opposed to the schema). This is done after cache clearing to make sure no cached data from before sql import is used.