In concrete5, you can define custom groups and add users to these groups. Administrators can then set different levels of permissions for each user (read, write, edit, delete).
With Advanced Permissions enabled, more granular permissions can be set on concrete5 components like blocks, areas, and more. Practically any user can be given access to any part of your site, whether it involves specific content, pages or administrative tasks.
Check out our Permissions documentation for more information.
In Wordpress, there are a set of defined roles: Super Admin, Administrator, Editor, Author, Contributor and Subscriber. You can then show and hide certain parts of the admin via the wpbeforeadminbarrender hook:
addaction( 'wpbeforeadminbarrender', 'removeadminbarlinks' ); function removeadminbar_links() { global $wpadminbar; if ($currentuser->userlevel < 10) { // remove a certain admin item $wpadminbar->remove_menu('new-content'); // show a certain admin for only the highest level of user $wpadminbar->add_menu( array( 'parent' => 'new', 'id' => 'my_special', 'title' => 'User', 'href' => adminurl( 'myspecial.php') )); } }
Then you can remove menus for certain levels of users via the admin_menu action:
addaction('adminmenu', 'remove_menus'); function remove_menus () { global $menu; if( (currentusercan('install_themes')) ) { $restricted = array(); } // check if admin and hide nothing else { // for all other users // Remove Tools, Appearance, Links, Plugins, Comments, if ($currentuser->userlevel < 10) { removesubmenupage( 'edit.php?posttype=page', 'post-new.php?posttype=page' ); removemenupage( 'post-new.php'); $restricted = array(__('Posts'), __('Links'), __('Appearance'), __('Tools'), __('Settings'), __('Comments'), __('Plugins')); // this removes a lot! Just delete the ones you want to keep showing end ($menu); while (prev($menu)){ $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){ unset($menu[key($menu)]);} } } }