This is the documentation for concrete5 version 5.6 and earlier. View Current Documentation

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).

Screen_Shot_2012-10-19_at_3.34.38_PM.png

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.

wp_howto-perms2.jpg

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)]);}

                   }
             }

}
Loading Conversation