For quite some time we had a circular dependency between the KunstmaanAdminBundle and the KunstmaanAdminListBundle, which made creating stable releases a bit difficult. So, last week we decided to refactor the KunstmaanAdminBundle (v2.3.16), and create a new (optional) KunstmaanUserManagementBundle to solve this circular dependency. This change should also benefit those who wish to create their own user/role/group management UI and integrate it in a Kunstmaan bundles website. If you want to use your own UI you will probably have to override the KunstmaanAdminBundle_user_change_password route, to fit your own needs (refer to https://github.com/Kunstmaan/KunstmaanUserManagementBundle/blob/master/Resources/config/routing.yml#L16-L2 to see how we did this in the KunstmaanUserManagementBundle).

For new projects, the KunstmaanBundlesStandardEdition already incorporates the needed changes, so you can use it as is (you can remove the kunstmaan/user-management-bundle dependency if you wish use your own UI).

For existing projects however, you will have to add the KunstmaanUserManagementBundle to your project when you upgrade if you want to keep using our default user/group/role management UI. To add the bundle, just edit your composer.json and add the following :

...

    "require": {

        ...

        "kunstmaan/admin-bundle": "2.3.*",

        "kunstmaan/user-management-bundle": "2.3.*",

        ...

And in app/AppKernel.php, add the following :

...

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(

            ...

            new Kunstmaan\UserManagementBundle\KunstmaanAdminBundle(),

            ...

            new Kunstmaan\UserManagementBundle\KunstmaanUserManagementBundle(),

            ...

Afterwards, run composer update kunstmaan/* and you should be good to go!

But that's not all...

While implementing this change we noticed that our menu adaptors could use some extra functionality to define the order in which they are processed. Since we (and probably most of you as well) are already familiar with the 'priority' parameter for symfony-cmf routers, we decided to implement it in the same fashion. So when you update to the last version of the KunstmaanAdminBundle (v2.3.16) you can now optionally add a priority to your custom menu adaptor services to change the order in which they are processed (the adaptor with the highest priority will be processed first).

The KunstmaanUserManagementBundle already uses this new functionality to make sure the menu items in the Settings menu are rendered in the same order as before : https://github.com/Kunstmaan/KunstmaanUserManagementBundle/blob/master/Resources/config/services.yml#L6-L10.

Enjoy!