============================================================================== Version 3.1.0 2015-10-05 ============================================================================== 1. NEW FEATURES CR10012770 PortalExtension: scripting support. Support for scripted method implementations of portal extension. Example: Janino-compliant scripts located in /WEB-INF/config/scripts/.script can be loaded with getQueryMethod = this.getMethod( "getQuery", new Class[]{ org.opencrx.kernel.portal.PortalExtension.class, String.class, // qualifiedFeatureName String.class, // filterValue int.class, // queryFilterStringParamCount ApplicationContext.class } ); CR10012764 Cloud support Jelastic. No need of openmdx-system.jar allows easy deployment of openCRX on Jelastic: * http://sourceforge.net/p/opencrx/wiki/Admin30.InstallOnJelastic/ * http://blog.jelastic.com/2015/09/17/deploy-and-host-your-opencrx-with-jelastic/ CR10012742 CardDavMATE is an open source CardDAV web client implementation. Improved VCARD RFC compliance. CR10012355 Grid action: EnableObjects / DisableObjects. Batch operation allows to disable / enable multiple selected objects in a grid. CR10012548 Grid actions for PriceLevel: * MarkPriceLevelAsFinal –> setFinal(true) * MarkPriceLevelAsNonFinal –> setFinal(false) * PriceLevelCloneValidTo –> clone validTo from first selected price level * PriceLevelResetValidTo –> setValidTo(null) CR10012527 Self-service password reset. The API is extended by the operation UserHome::requestPasswordReset() which * sends (by an alert) a reset and a cancel password reset URL to the user * resets the password to "{RESET}resetToken" This way: * a base64 hash is stored of the token (and not the token itself) * The account is locked because a login is impossible (a base64 encoded password hash never generates the prefix {RESET} * changePassword() accepts the token with the {RESET} prefix as old password The three wizards PasswordResetCancel.jsp, PasswordResetConfirm.jsp and RequestPasswordReset.jsp implement the logic on the GUI side: 1) The reset password process is started by calling the wizard RequestPasswordReset.jsp. If required, a link to the wizard can addded to login-note.html. The wizard presents an input field whereas the user has to enter its fully qualified ID, e.g. guest@CRX/Standard. Custom- specific help and descriptions go to request-password-reset-note.html. The wizard invokes the operation UserHome::requestPasswordReset() which sends out the reset and cancel password URLs and locks the user account. 2) The reset password URL points to the wizard PasswordResetConfirm.jsp which allows to reset the password. 3) The cancel password URL points to the wizard PasswordResetCancel.jsp which invalidates the reset token. It resets the password to a 20 char random value. This way the user home stays locked until the reset password process is completed successfully. 2. CHANGES 2.0. CHANGED FEATURES CR10012774 Modeling: Account / LegalEntity. Add attributes LegalEntity::establishedAt, LegalEntity::dissolvedAt. Move attribute Contact::governmentId to Account::governmentId. CR10012774 Modeling: DeliveryInfo. Add attributes to make class usable for more use-cases. 2.1. FIXED BUGS CR10012674 Search in code fields broken if there are matches with disabled codes. CR10012569 UserSettingsWizard: in case the segment administrator changes the perspective settings for another only the settings for the perspective with the highest index are applied. Perpectives with lower index (e.g. Root) are ignored. 2.2 REMOVED FEATURES none ~ ~ ~