New in Liferay: The Control Panel, an administration UI to rule them all
Company Blogs December 16, 2008 By Jorge Ferrer Staff
If you've been working with Liferay for a while this is probably an improvement that you will be excited about. If you are new to Liferay then this is a change you'll be even more excited about. So, what is it? In a few words it's a UI that allows administrating the complete portal, from 1 community to thousands of them, from users and organizations to documents, images, articles, ... all together in one single place.
The whole process of developing the Control Panel started around a year ago when we started to find solutions to some of the issues people where finding when administering very simple or very complex portals. Also, we wanted to use it as a way to teach people about the possibilities of Liferay. The goals of the Control Panel where:
- To provide a preconfigured UI with all the administration tools provided by Liferay.
- To allow for automatic delegation of administration. For example, if a user is assigned the Organization Admin role he should be able to administer that organization automatically.
- To add support for disabling those parts of the administration not being used in a given installation. For example, if you don't use User Groups you should be able to hide that option.
- To Support adding custom administration tools in a consistent and integrated way.
- To provide an easy to use UI for portal installations having only 1 or a few websites, but also valid for installations with hundreths or thousands of websites.
And I'm happy to say that we've been able to achieve all of these goals and even implement some other ideas we came up with during the process. You want to see how it ended up like? Here are some screenshots to get you started:
My Account - Every user will have access to the Control Panel and will have at least access to edit his account details
Polls - From the Control Panel you can edit any type of content that might be published through community or organization pages. For example poll questions.
Users - And of course you can manage the users of the portal. The users than an administrator can manage are filtered by his permissions.
Server - This section allows checking system resources and perform server administration actions.
Do you like it? keep reading to find out more about how it works.
How it works
All users will have access to the Control Panel by following a link in the top right menu (aka the dock). Once accessed the left menu of the Control Panel will automatically show only the sections that make sense based on the permissions of the user. The bar minimum would be to show the ability to edit his account details.
For the portal administrator all four sections of the menu will be shown:
- Personal section: provides accessign to edit account details and to manage personal pages.
- Content: provides access to manage all types of contents: web content (aka Journal), documents, images, blogs etc. (even including content from custom portlets). Since in Liferay all content must belong to a community or an organization, whenever the administration selects a tool to manage content the title of the Control panel shows for which community/org he's administering the content (by default the one you came from) and allows him to select a different one. This way if only have one community (or can only administer one) the UI will be very simple, but if you have many you still have a fast way to move around them.
- Portal: provides access to manage users, organizations, communities, ... and all portal wide elements.
- Server: provides access to server related administration tasks, such as checking the memory usage, installing plugins, etc.
Now the cool thing is that as a developer you can actually decide which of the items on the left menu are shown. In fact each of those items is a portlet, so all you have to do is to disable the portlet you don't want to be shown either through the UI (Plugins Configuration in the left menu) or through the liferay-portlet-ext.xml file.
Furthermore you can add any custom portlet to the desired place in that menu and make it part of the Control Panel!! We will add all the details soon in the wiki but in short you just need to add a few new elements in the liferay-portlet.xml file that would look similar to this:
<control-panel-entry-category>portal</control-panel-entry-category> <control-panel-entry-weight>1.0</control-panel-entry-weight> <control-panel-entry-class>com.liferay.portlet.enterpriseadmin.UsersControlPanelEntry</control-panel-entry-class>
The first element determines to which section of the menu will the portlet be added, the second one determines the position and the last one is optonal and allows deciding under which conditions the item will be shown or not.
Availability and next steps
The Control Panel is already available in our source control repository and will be availabled packed in the upcoming Liferay v5.2. Also for enterprises needing long term support it will be available in Liferay v5.3 which will be our next LTS release.
As you may have identified in the screenshots above, besides the development of the development of the Control Panel itself we've also added many other improvements to several specific administration tools. For example the user administration has been completely redesigned to allow for a much faster and more usable administration. For example, now when editing a user it's possible to see and change it's roles, communities, organizations and user groups along with all other user details. Also you can change all his details and save them at one time. Other cool features are the custom attributes, permissions assignements, reminder queries, improvements to roles and to login configuration,etc. We'll be blogging and writting wiki entries about all of these in the next days.
And, of course, we are already thinking about how to improve the Control Panel even further. As soon as we release 5.2 we'll start working the make it even better for 5.3. And for that we need your help, we'd love to hear what you think about the Control Panel (both the good and the bad) and specially keep coming the ideas about how to improve it.
Finally, I'd like to send a special thanks to Julio, Nate and Ray who did an amazing job to make the Control Panel a reality. Also to everyone else that helped during development and providing feedback. Thanks guys, you rock!