[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