Releases: remp2020/crm-users-module
Releases · remp2020/crm-users-module
0.33.0
- BREAKING: Added signal method prefix
handle
intoGenerateAccessCommand
(user:generate_access
) to generate ACL resources for presenter's signals within administration (presenters extendingAdminPresenter
). All signals are automatically allowed for all admin groups (to keep access for all admin users as before signals were introduced). This is one time seed. Please check & update admin group rights in administration (http://crm.press/users/admin-group-admin/). remp/crm#1661 - BREAKING: Renamed
SsoRedirectValidator
toSignInRedirectValidator
. remp/crm#1941 - Changed
SsoUserManager::getUser()
method signature. remp/crm#1957- Added optional parameter
registrationChannel
to the end of parameter list. Change is backwards compatible.
- Added optional parameter
- Added initial Apple Sign-In support using ID token and Authorization code flow. remp/crm#1924
- Merged
Users:changePassword
,Users:requestPassword
andUsers:settings
pages together toUsers:settings
page.Users:settings
is now available for all users, content of the page depends on whether user is logged in or not. remp/crm#1818 - Changed
Users:changePassword
andUsers:requestPassword
pages to deprecated and will be removed in the future. Requests are redirected to ``Users:settings`. remp/crm#1818 - Added
level
intoadmin_access
table to indicate access level of resource (read / write). Annotation@admin-access-level
above resource method is used for setting level. They are loaded and stored into DB by UsersModule'sGenerateAccessCommand
(user:generate_access
). remp/crm#1661 - Added
type
intoadmin_access
table to indicate type of resource (render / action / handle). These types are loaded from method prefix and stored into DB by UsersModule'sGenerateAccessCommand
(user:generate_access
). remp/crm#1661 - Changed (improved) UI for setting resource access (granting permissions) to admin groups. Added access types and levels and global/per module toggles (eg. read only). remp/crm#1661
- Added the management of linked accounts into user's settings page. remp/crm#1922
- Added option
--cleanup
toGenerateAccessCommand
(user:generate_access
) command. When command is launched with this option, orphaned ACL resources and actions are removed. Can be used to remove remains after CRM module is uninstalled or presenter/method is (re)moved. remp/crm#1777- WARNING: This option doesn't fix ACL after resource is moved. That should be handled by module when resource is moved / renamed (eg. by migration).
- Changed
users.note
column fromVARCHAR(255)
toTEXT
. More space is sometimes needed (eg. notes about company accounts). remp/crm#1953- Set
note
input field to nullable (stores NULL instead of empty string).
- Set
- Added option to set query parameter
n_source
when using Apple or Google Sign In to store user registration source. remp/crm#1957 - Added
registration_channel
column tousers
table. remp/crm#1957- This column refers to channel through which user was registered. Default value is
crm
. It's primarily designed to determine origin of the registration data and consent (e.g. Google sign in, Apple sign in).
- This column refers to channel through which user was registered. Default value is
0.32.0
- BREAKING: Added
users.email_validated_at
flag to track deliverability of emails. Flag resets on email change. Changedusers.confirmed_at
intention. remp/crm#1739 remp/crm#1028- The original intention in CRM was to use
users.confirmed_at
flag to determine both account confirmation and email deliverability. We're splitting this to two different fields.users.confirmed_at
now flags the actual account confirmation triggered by clicking on the confirmation link in an email, event-based confirmation, or admin confirmation. Any features dependent on account confirmation should still use this field. To maintain backwards compatibility, we recommend creating event handler listening to theUserCreatedEvent
which confirms new users automatically.users.email_validated_at
now flags deliverability of email address. Its primary use case is to determine whether systems should attempt to deliver non-system messages to the email address.
- The migration copies the value of
confirmed_at
toemail_validated_at
field to maintain originally stored values. This is a one-time operation.
- The original intention in CRM was to use
- BREAKING: Signature of method
Crm\UsersModule\Repository\UserEmailConfirmationsRepository::verify
was changed and renamed. remp/crm#1739- Please change any use to the method to
Crm\UsersModule\Repository\UserEmailConfirmationsRepository::confirm
. - Method now returns instance of the email confirmation row that's being confirmed instead of boolean value.
- Please change any use to the method to
- BREAKING: Previously, if user signed in with her username and password, she would be automatically confirmed. This has been removed. remp/crm#1739 remp/crm#1028
- To maintain backwards compatibility, you can create internal event handler listening to the
UserSignInEvent
and confirm user yourself.
- To maintain backwards compatibility, you can create internal event handler listening to the
- Added API endpoints
users/set-email-validated
andusers/set-email-invalidated
for email address validation/invalidation by external services. remp/crm#1740 remp/crm#1028 - Fixed the issue with the disappearing/hiding buttons in the
Basic info
panel (UsersAdmin
). (Causing problem, if the component is too narrow or the email address is too long.) remp/crm#1838 - Changed Google Sign in user creation flow. We're temporarily generating the user password (it was empty before) until the related trigger in the ScenarioModule supports this scenario and until CRM provides password-less login flow (i.e. magic login link via email). remp/crm#1913
- Fixed invalid use of
site_name
config option which could cause error if strict check is used by PhpOffice. Replaced withsite_title
. remp/crm#1921
0.31.0
- BREAKING: Changed parameter in
admin.user.detail.center
widget placeholder. Now there isint $userId
available instead ofIRow $user
. remp/crm#1357 - BREAKING: Removed
first_name
andlast_name
parameters fromBasicUserDataProvider
. This removal also removes the fields fromuser_data
Redis cache key. If you used it, please pass these parameters through other channels (e.g. custom user data providers). remp/web#1486 - Fixed broken password reset for already logged user. remp/helpdesk#444
- Removed
LOWER
fromUserBuilder->isValid()
. MySQL is case insensitive. And when LOWER is used, MySQL will not use the email index. remp2020/crm-users-module!14 - Added initial Google Sign-In support using ID token and Authorization code flow. remp/crm#977
- Added
created_at
timestamp toBasicUserDataProvider
to be cached inuser_data
Redis hash. remp/novydenik#774 - Fixed storing of empty
ext_id
value when editing user. Occasionally0
or empty string would be stored which is not valid (expected) value. remp/helpdesk#561 - Changed size of
users.referer
column toVARCHAR(2000)
to accommodate longer URLs. remp/crm#1890 - Added spam trap domain
gmai.com
to blocked domains used to validate email addresses byCrm\UsersModule\Email\StaticDomainFileValidator
. remp/crm#1894 - Added
UserHasAddressCriteria
scenario builder condition. remp/crm#1317 - Added deletion of user connected accounts after user is anonymized. remp/crm#1897
0.29.0
- BREAKING: Bump minimal PHP version to 7.3.
- Fixed hardcoded DennikN support email in language constant displayed when deactivated account requests password reset. remp/helpdesk#258
- Optimized abusive users list loading speed in administration. remp/helpdesk#278
- Added migration to set
deleted_at
value (derived fromupdated_at
value) for already deleted addresses (removed due to GDPR requests). remp/helpdesk#295
0.28.0
- BREAKING: Added
filter()
function to interfaceFilterUsersFormDataProviderInterface
. Function is used to filter users based on fields added by dataprovider. remp/crm#1663 - Fixed values for
user_meta
flagconfirmed_by_admin
. Between version 0.17.0 and 0.21.0 we incorrectly storedtrue
as value also for mail confirmations. remp/crm#1452 - Fixed
user_meta
flagconfirmed_by_admin
. Storing flag only if user was confirmed by admin. Default confirmation (via mail) doesn't needuser_meta
entry. remp/crm#1452 - Added
NotificationContext
parameter toNotificationEvent
object, allowing to specify application's context in which the event was fired.
This can be used byPreNotificationEvent
handlers to manipulateNotificationEvent
depending on the application context. remp/crm#1654
0.27.0
- BREAKING: Deprecated users
first_name
andlast_name
fields (in favor of using addresses anduser_meta
fields) are no longer automatically populated when address is added. If you need to maintain the behavior, we recommend to add your own listener to\Crm\UsersModule\Events\NewAddressEvent
. remp/novydenik#462 - Fixed persistent parameters in abusive users form and login attempts form. remp/crm#1558
- Added
AddressFormDataProviderInterface
to create dataproviders forAddressForm
. remp/crm#1630 - Added
users.dataprovider.address_form
dataprovider placeholder toAddressFormFactory
. remp/crm#1630
0.24.0
0.23.0
0.22.0
0.21.0
- BREAKING: Extracted
getAccessTokens
method fromUsersApiAuthorizationInterface
to its own interfaceAccessTokensApiAuthorizationInterface
. remp/crm#1403 - BREAKING: Changed
UserMetaListHandler
(/api/v1/user-meta/list
). It is now using GET parameters (user_id
,key
) instead of JSON request body andServiceTokenAuthorization
to allow more user authorization options. remp/crm#1403 - BREAKING: Changed
/api/v1/users/autologin-token-login
. It now returns error codes inerror
property instead ofcode
to keep consistency. remp/dn-mofa#11 - BREAKING: Changed
/api/v1/users/autologin-token-login
. It is now expectingPOST
parameters instead ofGET
parameters. We did this as a breaking change to enforce security as having autologin tokens passed byGET
parameters was not secure in the first place. remp/dn-mofa#152 - Fixed bug in
user/info
module which crashed if recently-added access token with source was used to access the API. remp/dn-mofa#97 - Fixed storing of
user_meta
flagconfirmed_by_admin
. It's not always true. remp/crm#1452 - Fixed duplicate user password reset after refresh of browser after password reset (in admin user detail).
- Added
ServiceTokenAuthorization
that usesBearerTokenAuthorization
andUserTokenAuthorization
to authorize request and user. remp/crm#1403 - Added
BeforeRemoveAccessTokenEvent
,PairDeviceAccessTokensEvent
andUnpairDeviceAccessTokensEvent
to manage events based on access-device token relation changes. remp/crm#1312 - Added user logout endpoint. remp/crm#1449
- Added
ClaimUserDataProviderInterface
to implement customClaimUserDataProviders
in modules. remp/crm#1319 - Added
UsersClaimUserDataProvider
which is used to get data fromuser_meta
andusers.note
and assign it tologgedUser
when claiming unclaimed user. remp/crm#1319 - Fixed missing
city
field inAddressWidget
. Displaycity
even ifzip
field is missing. remp/crm#1461 remp/crm#1465 - Added
AccessTokenDataProviderInterface
to provide way for modules to pass additional (protection) information regarding access tokens. remp/crm#1494 - Fixed update user group creates new group instead of updating + add missing
updated_at
column to user groups table. remp/crm#1488 - Added
AdminUserGroupsUserDataProvider
to remove user from admin groups when anonymizing user. remp/crm#1391