- 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.