Since v2.1 all changelog entries are merged into Roadiz monorepo
- Add documentTranslation into document during persisting loop to allow fetching before flushing (cc94cbe)
- Enforce custom-form validation for API endpoints (055201d)
- Removed static return type for php74 compatibility (ba0473a)
- Format CustomFormAttribute value to Date or DateTime string (86df706)
- Fixed recursive findEmailData to find "email" key in a complex form data (44a9a89)
- Added tags and folders position field to serialization (4a92a02)
- Missing allowRequestSearching condition on EntityListManager (6e0f606)
- Make EntityListManager request sorting and searching optional for security purposes (5103cf6)
- Normalization: Set higher priority for
NodesSourcesPathNormalizer
(05498d2)
- NodeType: Automatically store JSON serialized node-type in project and update
./src/Resources/config.yml
file (2e1dc8a) - NodeType: Remove JSON node-type field and update
./src/Resources/config.yml
after Node-type deletion (32a325f) - Translation: Let user choose source and destination translations (8426fa0)
- Upgrade to
roadiz/documents
2.0.6 minimum - Dispatch async document messages only for DocumentFileUpdatedEvent, dispatch DocumentCreatedEvent on custom-form post (e008da6)
- Constraints: Missing
CLASS_CONSTRAINT
for NodeTypeField class constraint (08246c7)
Reverting: api-platform/core#4988
- api-platform: Revert to api-platform/core 2.6 (1a23f28)
- Solr: Differentiate tags_txt for visible Folders/Tags and all_tags_txt for filtering Solr queries. (9d0c7e5)
- Translation: NodesSourcesPathResolver must not use unavailable translations unless preview mode is active (459580b)
Bug fixes due to api-platform/core upgrade to 2.7.0
- api-platform: Fixed ArchiveExtension
applyToCollection
method which was not restricted to archive operations (6bfa530) - api-platform: Increased
ArchiveExtension
service tag priority to be called beforePaginationExtension
(3a7158a) - api-platform: Address nullable RequestStack in
AbstractFilter
constructor (de9b901) - api-platform: Fixed
AbstractFilter
deprecation usingAbstractContextAwareFilter
(a85db5d)
- Migrated constraints from Symfony forms to global entity validation (11741a3)
- Added Flex manifest and updated config files (8ace107)
- Added PathResolverInterface::resolvePath
$allowNonReachableNodes
arg to restrict path resolution to reachable node-types (d78754d) - Added
public
andthemes
dir in flex manifest (305800d)
- Missing default configuration value for
healthCheckToken
(28668c4)
- Added
DocumentVideoThumbnailMessageHandler
to wrapffmpeg
process and extract videos first frame as thumbnail (4b7d096) ImageManager
is registered as a service to use app-wise configured driver (cfa0b84)- Moved all document processes from event-subscribers to async messenger, read AV media size and duration (251b9b5)
- Revert registering ImageManager as service since rezozero/intervention-request-bundle does it (064c865)
- Force int progress start (24247d2)
- Upgraded rezozero Liform to handle properly FileType multiple option (cd1b147)
- Folder names and Tags names must be quoted in Solr filter query parameters (d68d9b5)
- Always index all documents folder names to Solr, not only visible ones (i.e. to restrict documents search with an invisible folder) (c76fffc)
- Added Folder
locked
andcolor
fields, improved table indexes (b8f344d) - Improved AbstractExplorerItem and AbstractExplorerItem (66386d6)
- Updated rezozero/tree-walker in order to extend
AbstractCycleAwareWalker
and prevent cyclic children collection (eb80381)
- Missing validator translation message (33648a3)
- Security: Use QueryItemExtension and QueryCollectionExtension to filter out non-published nodes-sources and raw documents (f7c4688)
- SearchEngine: Use
Solarium\Core\Client\Client
instead ofSolarium\Client
because it's not compatible with Preload (defined constant at runtime) (320df16)
- Document: Fixed context groups undefined key (8bbdc31)
- Document: Fixed document DTO thumbnail when document is Embed (it's an image too because an image has been downloaded from platform) (0d7fef4)
- ArchiveFilter: Prevent normalizing not-string values (b1fe49e)
- Remove useless eager join on document downscaledDocuments on DocumentRepository (d821586)
- Serializer: Ignore can only be added on methods beginning with "get", "is", "has" or "set" (78b52aa)
- Added
altSources
to Document DTO and optimize document downscaled relationship (82a5fd6)
- DocumentFinder now extends AbstractDocumentFinder (670516a)
- SearchEngine: Do no trigger error on Solr messages if Solr is not available (785c559)
- Do not index empty arrays since solariumphp/solarium 6.2.5 breaks empty array indexing (c9da177)
- Added new
NodeTranslator
service and remove dead code on User entity (7f211c5)
- Attach documents to custom-form notification emails (c213e87)
- Added
NotFilter
(29a608d) - Purge custom-form answers documents as well when retention time is over. (a00a619)
- WebResponseInterface now requires
getItem(): ?PersistableInterface
method to be implemented.
- Set context translation from a WebResponseInterface object (fbde288)
- Mailer test command sender and origin emails (ae26d01)
Added true filtrable archives endpoint extension for any Doctrine entities (597803d). You need to add a custom collection operation for each Entity you want to enable archives for:
# config/api_resources/nodes_sources.yml
RZ\Roadiz\CoreBundle\Entity\NodesSources:
iri: NodesSources
shortName: NodesSources
collectionOperations:
# ...
archives:
method: 'GET'
path: '/nodes_sources/archives'
pagination_enabled: false
pagination_client_enabled: false
archive_enabled: true
archive_publication_field_name: publishedAt
normalization_context:
groups:
- get
- archives
openapi_context:
summary: Get available NodesSources archives
parameters: ~
description: |
Get available NodesSources archives (years and months) based on their `publishedAt` field
- Added
IntersectionFilter
to create intersection with tags and folders aware entities. (25c1dc5)
LoginRequestTrait
using Controller must implement getUserViewer() method.- You must now define getByPath itemOperation for each routable API resource.
- Solr handler must be used with SolrSearchResults (for results and count)
- Rename @Rozier to @RoadizRoadiz
- Added Realm, RealmNode types, events and async messenging logic to propagate realms relationships in node-tree. (c53cbec)
- Accept Address object as receiver (4f5f925)
- Add node' position to its DTO (6dae0d6)
- Added
--dry-run
option for documents:files:prune command (8b61694) - Added CircularReferenceHandler to expose only object ID (8c9ddbd)
- Added custom-form retention time (22383e9)
- Added default NodesSources search and archives controller (b8ff98b)
- Added document CLI command to hash files and find duplicates (d138a2a)
- Added document Dto width, height and mimeType (62958a3)
- Added DocumentRepository alterQueryBuilderWithCopyrightLimitations method (637a0b7)
- Added documents file_hash and file_hash_algorithm for duplicate detection. (4549ada)
- Added generate:api-resources command (25fd64c)
- Added HealthCheckController and appVersion config (54bf276)
- Added lexik_jwt_authentication (bd5826d)
- Added missing Document DTO externalUrl (cbce6f1)
- Added new Archive filter on datetime fields (0bae8d3)
- Added new Document copyrightValidSince and Until fields to restrict document display. (40a31c2)
- Added new role ROLE_ACCESS_DOCUMENTS_LIMITATIONS (bc564fd)
- Added new role: ROLE_ACCESS_CUSTOMFORMS_RETENTION (b3586c4)
- Added new UserJoinedGroupEvent and UserLeavedGroupEvent events (e12d6e4)
- Added node-source archive operation logic (without filters) (994d9bc)
- Added OpenId authenticator (5cf4383)
- Added preview user provider and JwtExtensiont to generate secure jwt for frontend previewing (76d81c0)
- Added Realm and RealmNode entities for defining security policies inside node tree (99ad2a5)
- Added Realm Security Voter, Normalizer and WebResponse logic (f35083e)
- Added RealmResolverInterface to get Nodes realms and check security (6fe7a00)
- Added RememberMeBadge (1cf563c)
- Added Solr document search
copyrightValid
criteria shortcut (66f4215) - Added translation in serializer context from _locale (db0b45b)
- Added Translation name to Link header to build locale switch menus (9785438)
- Added validation constraints and groups directly on User entity (82e01f3)
- Added validators translation messages (a61b9d8)
- Configured
rezozero/crypto
to use encoded settings (32f59d6) - ContactFormManager flatten form data with real form labels and prevent g-recaptcha-response to be sent (53e7c9d)
- Deprecated LoginAttemptManager in favor of built-in Symfony login throttling (2d4a10e)
- Do not index not visible tags and folder into Solr (d8fc516)
- Do not search for a locale if first token exceed 11 chars (9f614d8)
- Document: Added document-translation external URL and missing DB indexes (c346f7b)
- documents: Added mediaDuration to Document DTO (41673d6)
- Filter and Sort Translations by availability, default and locale (47605f8)
- find email from any contact form compound (3d55930)
- Force API Platform to look for real resource configuration and serialization context (9ee9f42)
- FormErrorSerializerInterface and RateLimiters (31c6ca8)
- Index documents copyright limitations dates (f6bbf0b)
- Jwt authentication supports LoginAttemptManager (eee4c08)
- LoginRequestTrait requires UserViewer (544cdcc)
- Made alterQueryBuilderWithAuthorizationChecker method public to use it along with Repository (c567cc5)
- Made AutoChildrenNodeSourceWalker overridable and cacheable (226ae1a)
- Made WebResponse as an API Resource (b778647)
- migrate custom-forms preview to Recaptcha v3 script (1b1bfb1)
- Moved all OpenID logic to RoadizRozierBundle as it only supports authentication to backoffice. (0171cbb)
- Moved Security/Authentication/OpenIdAuthenticator to roadiz/openid package (4f4e391)
- New DocumentArchiver util to create ZIP archive from documents (be8a35f)
- NodesSourcesPathResolver can resolve home faster, and resolve default translation based on Accept-Language HTTP header (00db41a)
- Nullable discovery openId service (ff555c3)
- Only requires symfony/security-core (f094ca2)
- Optimize NodesSourcesLinkHeaderEventSubscriber with repository method (a4e5e37)
- postUrl for custom-form dto transformer (7b3f00f)
- redirections: Use recursive path normalization to normalize redirection to redirection (4b4b03f)
- Refactored document search handler and removed deprecated (4cfb5df)
- refactored Document translation indexing using DocumentTranslationIndexingEvent, and make it document indexing overridable (2f4126c)
- Removed hide_roadiz_version parameter from DB to remove useless DB query on assets requests (b7ad3a7)
- Rename @Rozier to @RoadizRoadiz (a5ebc4a)
- Search existing realm-node root or inheritance when editing a node (moving) (c718059)
- Serialize tag parent in DTO (c48fb11)
- set real _api_resource_class for GetWebResponseByPathController (f9c0804)
- Simplify UserLocaleSubscriber (c79bf80)
- Support exception in Log messages context (3159a6c)
- Support non-available locales if previewing (72cdf19)
- Support non-available locales if previewing (ca1ac63)
- UniqueNodeGenerator: If parent has only one translation, use parent translation instead of default one for creating children (d463d02)
- Use a factory to create NodeNamePolicyInterface with settings; (a5a9b9d)
- UserProvider support searching user by username or email (4e6ad3c)
- Accept nullable DocumentOutput relativePath and mimeType (910bc8f)
- Added Assert annotations on User entity for API platform validation (7685f8e)
- Added email default sender name with Site name (d9842ac)
- Added getByPath itemOperation into generate command (220c291)
- allow null string in AbstractSolarium::cleanTextContent (aa418fc)
- Cache pools to clear (0cd36c0)
- Casting attribute value to string when number input (5263140)
- Change Discovery definition argument (bed0e1b)
- Changed LocaleSubscriber priority (de920ed)
- clear existing cache pool in SchemaUpdater (62a01af)
- Configuration tree type (de47a3c)
- Context getAttribute comparison (016df90)
- do not set api resource GetWebResponseByPathController, it breaks serialization context (49ccf2f)
- Doctrine batch iterating for Solr indexing (255699a)
- Fix emptySolr query syntax (717458f)
- Fix ExplorerItemProviderType using asMultiple instead of special multiple option. (8fdc3da)
- Ignore getDefaultSeo (e2f1a57)
- Improved Recaptcha fields Contraint and naming (4121345)
- InversedBy relation, shorter log cleanup duration (67c3ef0)
- Missing Liform transformers (0e8cb2b)
- Missing RedirectionPathResolver to resolve redirections (eaa99c7)
- missing trans on form error message (68e38a6)
- New SolariumDocumentTranslation constructor signature (7f1f8b5)
- NodesSourcesDto title must accept nullable string (bf3dec2)
- non-existent cache.doctrine.orm.default.result cache pool (e5bd921)
- Nullable and strict typing AttributeValueTranslation (4e4bb0a)
- nullable custom-form email (4fbeb58)
- Nullable roadiz_core.solr.client service reference (2592084)
- Only provide Link header for available translations or previewing user (3255f58)
- OpenIdJwtConfigurationFactory configuration (800b97b)
- Prevent hashing non-existing document file (5e92858)
- Remove NodeType repository class as well during deletion (9c4c49e)
- Removed method dependency on UrlGeneratorInterface (cbe9675)
- removed optional cache-pools from SchemaUpdater (ff2de22)
- Removed request option from Recaptcha constraint and using Form classes (60a04d4)
- Rewritten node transtyper (c1309dd)
- Roadiz LocaleSubscriber must be aware of _locale in query parameters too. (65fe081)
- SolrDeleteMessage handler (fefe729)
- support ld+json exception (fdce0d1)
- transactional email style for button (c588994)
- TranslationSubscriber dispatch CachePurgeRequestEvent (4099304)
- Uniformize custom-form error JSON response with other form-error responses (a817fa4)
- unnecessary nullable ObjectManager (218bbd1)
- Update tag and document timestamps when translations were edited (49774d8)
- Use empty form name for custom-form (202ea2a)
- Use JSON status prop for status code, not message (2a4f498)
- Use Paginator to avoid pagination issues during Solr node indexing (f43cae9)
- Use PriorityTaggedServiceTrait trait to respect tagged service priority (4e31229)
- Use
rezozero/liform
fork (863893c) - Use Security to create Preview user when isGranted (133c6f8)
- Use single_text widget for Date and DateTime customForm fields (5bfa1d3)
- User implements getUserIdentifier (0355b1c)