SilverStripe version 3.1.7 stable has been released today, you can get a copy from our downloads section.
What's new in this version
Re-authentication without losing work
This feature allows users working in the CMS to quickly re-enter their password and continue working should their session expire. This occurs through a popup dialog, which asks the user for their current password to continue working. Now unsaved changes in CMS forms need not be lost if your session expires.
Having a single default admin
In this version the way that the default admin user is managed is slightly changed. Rather than defaulting to the first administrator user in the CMS, a user logging in as a default admin will always be assigned to a "Default Admin" user with admin privileges. In the past, this user would only be created if no other administrators existed.
A new way to flush things
The Flushable interface has been added as a standardised way of exposing custom logic and behaviour to the flushing mechanism. Rather than manually checking the $_GET global for user flush queries, user code can now implement the Flushable interface and add the custom logic into the flush method. This method will now be called at the correct time in the execution pipeline, ensuring that the logged in user has all the correct rights to do so.
There are also various other security improvements, bug fixes and enhancements. See the changelog for more information.
A note on breaking changes
It's important to note that in this release, there were certain features which introduced unintended breaking changes. For example, any custom authentication methods will likely need some adjustment made in order to fully support this version, although some will work without modification. The consequences of this change, while regretful, has led us to take another look at our release and development practices.
We don't always get things right, but we do always want to learn from our mistakes.
The good news is that in the near future we will be moving to semantic versioning as a mechanism for controlling these changes. In the mean time, we apologise for anyone affected by this update. Keep an eye on this space for future updates as specific details are to be released.
If you are using composer, upgrading is pretty simple. If you are linking to the 3.1.*-dev branch, you likely already have the update from the main branch, but if not a “composer update” will do the job.
If you are linked to a 3.1.* tag or development branch then update your composer.json as below.
You can create a new web project to try out using our composer web installer
composer create-project silverstripe/installer ./mynewproject 3.1.7