If you want to give the Editor Role access to editing the sidebar and it’s contents.
The edit_theme_options
capability should allow the user to edit the sidebar as described on this page : http://codex.wordpress.org/Appearance_Widgets_SubPanel
Code to add to functions.php
$role = get_role('editor');
$role->add_cap('edit_theme_options');
or, you can use Members plugin to create/manage other roles and modify the capabilities.
http://wordpress.org/plugins/members/
This should work to prevent editor accessing themes or menus
function custom_admin_menu(){
$user =new WP_User(get_current_user_id());if(!empty( $user->roles)&& is_array($user->roles)){foreach($user->roles as $role)
$role = $role;}if($role =="editor"){
remove_submenu_page('themes.php','themes.php');
remove_submenu_page('themes.php','nav-menus.php');}}
add_action('admin_menu','custom_admin_menu');