[AdminModule]
- BREAKING: Added user meta flag
secure_login_allowed required for Secure admin login. See the module’s README for more information. remp/crm#2347
- This affects you only if you’ve enabled “secure authentication” in the CRM admin.
- The signature of method
SecuredAdminAccess#isSecure() changed - it now requires user ActiveRow.
- The secure login access now verifies presence of
secure_login_allowed non-public user meta flag. If it’s not present, user won’t be allowed an access to the admin.
- Changed
ConfigPresenter::default admin config menu to vertical. remp/novydenik#346
[ApiModule]
- Added method
ApiHeadersConfig->setAccessControlMaxAge(int) to set header Access-Control-Max-Age for preflight (OPTIONS) request. remp/crm#2445
[AppleAppstoreModule]
- Fixed processing of
INTERACTIVE_RENEWAL server to server notification. remp/crm#2396
- Notification processing could wrongly log an error that purchased payment starts before previous subscription ends.
- Fixed processing of
CANCEL server to server notification. remp/crm#2400
- Apple is not able to deliver the notification based on their documentation. Fix changes the handling to be compatible with documentation and also the real state.
- Added
locale parameter into API call /api/v1/apple-appstore/verify-purchase. remp/crm#2308
- Added payload into log within
ServerToServerNotificationWebhookApiHandler if validator/parser doesn’t return errors but notification is not processed. remp/crm#2437
[ApplicationModule]
- IMPORTANT: Method
Crm\ApplicationModule\User\UserDataRegistrator::generate() now doesn’t include key of user data provider if data() method returned null. remp/crm#2460
- If you don’t need to return/cache any user data from your provider, return
null instead of array content.
- Removed
$_SERVER['SHLVL'] check to determine if we’re in CLI or running web request. remp/crm#2375
- Updated translations.
- Fixed
YearScale graph keys. remp/crm#2315
- Changed
$locale in BasePresenter to persistent. URL parameter is now kept throughout user’s visit showing language intended by original URL. remp/crm#2390
- Added canonical URL to the base layouts. remp/crm#2449
[GooglePlayBillingModule]
- Added ability match Google subscription renewals to different subscription type. remp/crm#2360
- Added
locale parameter into API call /api/v1/google-play-billing/verify-purchase. remp/crm#2308
- Added catching of Google’s exception (
reason: concurrentUpdate) thrown when second acknowledge() call is triggered before Google processed first. remp/crm#2385
[InvoicesModule]
- Fixed translations for form field used for the “street” part of address. Using address is legacy thing. remp/helpdesk#1201
- Added checkbox to invoices export to select only B2B invoices. B2B invoice has filled in either buyer’s company ID, VAT ID or TAX ID. remp/crm#2447
[PaymentsModule]
- DEPRECATION: Command
payments:cancel_authorization is deprecated - authorization payments are automatically canceled by bank.
- Fixed javascript in
AddressWidget. If address is stored, we should keep that info in form header (do not hide it; load it after reload). remp/helpdesk#1201 remp/crm#2370
- This affects all additional address forms attached to widget place
payment.address on payment success page (eg. invoice, print…).
- Added support for CSOB payment status and card expiration checking. remp/novydenik#912
- Added
payments.frontend.recurrent_stop.head widget placeholder in Payments:recurrentStop. remp/crm#2369
[ProductsModule]
- Added sold shop products by tags graph to products dashboard. remp/crm#2249
- Removed hardcoded shop title from translations used in
title elements. remp/crm#2299
[RempMailerModule]
- IMPORTANT: This version requires REMP Mailer v0.32.2 and higher due to the API-compatibility.
- Please update the Mailer prior releasing/using this version of RempMailerModule.
- BREAKING: Changed signature of
Crm\RempMailerModule\Models\ApiClient::getMailTypes(). remp/crm#2387
- The first parameter
string $code was changed to array $codes to support filtering of multiple mail types. If you use the API client directly, check your implementation and pass array of codes instead of just one string.
- Added ability to specify mail type categories in
MailSettings component used to manage newsletter subscriptions on frontend. remp/crm#2387
- Fixed issues with subscribe/unsubscribe requests if rtm params contaned
rtm_variant. remp/crm#1100
- Stopped sending accompanying emails when user bulk subscribes/unsubscribes to/from newsletters. remp/crm#2407
- Added support for multi-language emails. remp/remp#1085
[SalesFunnelModule]
- Added logged and not logged in show counts to sales funnel detail. remp/crm#2326
- Added ability to specify sales funnel layout using
default_action_layout_name meta option. remp/crm#2364
- Added sales funnel data provider
sales_funnel.dataprovider.template_variables allowing to provide custom template variables (e.g. to override template language). remp/crm#2417
- Added recurrent vs not recurrent payments graph to sales funnel stats page. remp/crm#2414
- Added action to make the copy of sales funnel. remp/crm#2306
- Fixed query parameter passing to iframe on SalesFunnelFrontend:default action. remp/crm#2454
[ScenariosModule]
- BREAKING: Removed passing of scenario job by reference.
JobsRepository methods startJob(), finishJob() and scheduleJob() now return updated $job. remp/crm#2363
- Moved check for job’s element before triggering
JobsRepository->finishJob() to prevent missing $job->element_id when storing stats. remp/crm#2363
- Added missing check into
FinishWaitEventHandler.
- Added command to reconstruct wait event to Hermes in case they were removed. remp/crm#2461
[SegmentsModule]
- BREAKING: Changed
segment.detail.statspanel.row widget parameter from array $ids to ActiveRow $segment. remp/crm#2162
- If you implement widget for
segment.detail.statspanel.row path, edit render() function to accept ActiveRow $segment instead of array of row ids inside segment.
- We recommend caching segment related values displayed in widget and use
render() function just for values presentation. Use recalculate() function (mentioned below) to update cached values.
- BREAKING: All widgets registered at
segment.detail.statspanel.row path have to implement new SegmentWidgetInterface. remp/crm#2162
- Implement
recalculate() function from SegmentWidgetInterface in your widgets to recalculate displayed values based on segment.
- BREAKING: Added
getIdsQuery() function to QueryInterface interface. remp/crm#2162
- If you have your own
QueryInterface implementation, add the new function based on the reference implementation in SegmentQuery.
- BREAKING: Added
getIds() function to SegmentInterface interface. remp/crm#2162
- If you have your own
SegmentInterface implementation, add the new function based on the reference implementation in Segment.
[SubscriptionsModule]
- Added all available content accesses to export of subscription types. remp/crm#2427
[UpgradesModule]
- Updated translations, string is not used in project.
- Fixed content access filter for upgrade selection. remp/crm#2403
- The previous implementation duplicated the parameters and made the selected content access different than requested.
[UsersModule]
- Added check to prevent admin user from removing SSO pairing if Secure admin login is enabled. remp/crm#2347
- Fixed
UserConnectedAccountsRepository methods for removing user’s connected accounts. Using repository’s delete() method to ensure we have audit log. remp/crm#2347
- Fixed incorrectly set response code for not approved autologins. remp/crm#2377
- This regression was caused by missed error when auto refactoring with custom rector rules. remp/crm#2330 & remp/crm#2342
- Added
Crm\UsersModule\Api\v2\UsersEmailHandler api handler with better error and validation handling + deprecate old Crm\UsersModule\Api\UsersEmailHandler api handler. remp/crm#2310
- Added
onetimeusemail.com into blocked domains. remp/crm#2388
- Changed way how
AccessTokenAuthenticator marks that user token is not allowed to login. Previously, only a binary flag was stored in session. Now, hash of a token is stored.
- Fixed locale switcher in admin. remp/crm#2393
- This required us to register
UserDataLocaleResolver by default to all installations. If you were adding it manually, you don’t need to anymore.
- Added
source param to GoogleTokenSignInHandler for allowing to register user with specific source through Google sign in api endpoint. remp/crm#2297
- Refactored
GoogleTokenSignInHandler to use Nette api params validation instead of deprecated InputParam. remp/crm#2297
- Remove persistent locale from URL in
ApplePresenter and GooglePresenter. remp/crm#2390
- It is already part of final url / referer but keeping it further breaks callback URLs (they are static and shouldn’t contain unknown URL parameters).
- Added support for
locale in Google and Apple presenters and GoogleSignIn and AppleSignIn models. remp/crm#2308
- Added list of disposable email address domains to
blocked_domain.txt. remp/crm#2388
- Added
locale parameter into API calls /api/v1/users/create, /api/v1/users/update, ‘/api/v1/users/google-token-sign-in’ and /api/v1/users/apple-token-sign-in. remp/crm#2308