Concrete5 includes an excellent administrative section that gives users full control over sites. This includes a user and security system where you can create users, and even includes a registration page where users can register themselves. You can specify types of user registration---disabled (no self-registration), enabled, enabled with e-mail validation, and enabled with manual approval. The software even supports OpenID, and you can let users create profiles with an "Enable public profiles" option in the control panel.
When multiple users are logged in at once, the software supports page locking so that only one user can modify any given page at any given time. You can even create groups of users, assigning rights to various groups. This way, some users can make sitewide changes while other users are limited on what they can change (if anything at all).
Also included is a file manager, which is based on a set system (as opposed to a folder system) where you create sets and can move your images and media content into one or more sets.
Setting group permissions is a little odd at first, although it's easy once you know how to do it. In the Users and Groups section, there's a tab called Groups for creating and modifying groups. In this form you really specify only the name and description. In the File Manager section is a tab called Access. This is what you use to assign permissions to the groups. You have to first add the group you just created so it appears on this page. Then you can choose permissions: View site files, Seach files, Edit files, Admin files and Add files.
Additionally, you'll find features such as powerful version-tracking, as well as a nice content-scheduling feature that lets you schedule content to go live at a later date.
Testing Concrete5's Mettle
As with many open-source CMS packages, Concrete5 allows you to create only one site per installation. To create multiple sites, you need to install the software again in a separate directory. I don't see that as a big issue because, typically, a site equals the base URL (for example, eWEEK.com's site is http://www.eweek.com, and our other sites exist on separate servers or directories).
But what about eWEEK.com-style sites? So far I've mainly touched on pages that are essentially static pages. eWEEK.com is huge. We have thousands upon thousands of pages of content. These pages are stored in our own CMS, and generated based on our own templates. We don't have hundreds of thousands of static pages. Can Concrete5 handle something like eWEEK.com?
The developer of Concrete5, who is very active in the Concrete5.org discussion boards, told me that Concrete5 could handle a site like eWEEK.com. But for a site like eWEEK.com, at least two additional pages would be needed: a page in the administrative section where authors and editors can enter content directly without using the WYSIWYG editor (similar to the entry form in blogging software) and a page that would display the content. The page would fit right in with the existing template, and would display the requested article based on the URL.
Both pages would have to be created with some PHP programming, of course. So, out of the box, Concrete5 doesn't automatically do what an eWEEK.com-type site needs, but it could be coded to do so with the help of the system's robust API.
For a demo of Concrete5, click here.