function mnt_delete_object($src_name, $args, $object_id) { $object = ''; $defaults = array('object_type' => '', 'object' => ''); $args = array_intersect_key($defaults, (array) $args); extract($args); if (!$object_id) { return; } // don't allow deletion of menu items for posts which user can't edit if ('nav-menus.php' == $GLOBALS['pagenow'] && !is_content_administrator_rs() && !empty($_POST) && scoper_get_option('admin_nav_menu_filter_items')) { require_once dirname(__FILE__) . '/filters-admin-nav_menus_rs.php'; _rs_mnt_modify_nav_menu_item($object_id, 'delete'); } // could defer role/cache maint to speed potential bulk deletion, but script may be interrupted before admin_footer $this->item_deletion_aftermath(OBJECT_SCOPE_RS, $src_name, $object_id); if (empty($object_type)) { $object_type = cr_find_object_type($src_name, $object_id); } if ('post' == $src_name) { if ($post_type_obj = get_post_type_object($object_type)) { if ($post_type_obj->hierarchical) { scoper_flush_cache_groups('get_pages'); } } } scoper_flush_roles_cache(OBJECT_SCOPE_RS); }
function act_check_admin_referer($referer_name) { if (!empty($_POST['tag_ID']) && 'update-tag_' . $_POST['tag_ID'] == $referer_name) { // filter category parent selection for Category editing if (!isset($_POST['tag_ID'])) { return; } $taxonomy = $_POST['taxonomy']; if (!($tx = get_taxonomy($taxonomy))) { return; } if (!$tx->hierarchical) { return; } $stored_term = get_term_by('id', $_POST['tag_ID'], $taxonomy); $selected_parent = $_POST['parent']; if (-1 == $selected_parent) { $selected_parent = 0; } if ($stored_term->parent != $selected_parent) { global $scoper; if ($tx_obj = get_taxonomy($taxonomy)) { if ($selected_parent) { $user_terms = $scoper->qualify_terms($tx_obj->cap->manage_terms, $taxonomy); $permit = in_array($selected_parent, $user_terms); } else { $permit = cr_user_can($tx_obj->cap->manage_terms, 0, 0, array('skip_id_generation' => true, 'skip_any_term_check' => true)); } } if (!$permit) { wp_die(__('You do not have permission to select that Category Parent', 'scoper')); } } } elseif ('update-nav_menu' == $referer_name) { $tx = get_taxonomy('nav_menu'); $use_term_roles = scoper_get_otype_option('use_term_roles', 'post', 'nav_menu'); if (empty($GLOBALS['current_user']->allcaps['edit_theme_options']) || !empty($use_term_roles['nav_menu'])) { if (!cr_user_can($tx->cap->manage_terms, $_REQUEST['menu'], 0, array('skip_id_generation' => true, 'skip_any_term_check' => true))) { if ($_REQUEST['menu']) { wp_die(__('You do not have permission to update that Navigation Menu', 'scoper')); } else { wp_die(__('You do not have permission to create new Navigation Menus', 'scoper')); } } } } elseif (false !== strpos($referer_name, 'delete-menu_item_')) { if (scoper_get_option('admin_nav_menu_filter_items')) { $menu_item_id = substr($referer_name, strlen('delete-menu_item_')); require_once SCOPER_ABSPATH . '/admin/filters-admin-nav_menus_rs.php'; _rs_mnt_modify_nav_menu_item($menu_item_id, 'delete'); } } elseif ($referer_name == 'move-menu_item') { if (scoper_get_option('admin_nav_menu_filter_items')) { require_once SCOPER_ABSPATH . '/admin/filters-admin-nav_menus_rs.php'; _rs_mnt_modify_nav_menu_item($_REQUEST['menu-item'], 'move'); } } elseif ('add-bookmark' == $referer_name) { require_once dirname(__FILE__) . '/hardway-admin-links_rs.php'; $link_category = !empty($_POST['link_category']) ? $_POST['link_category'] : array(); $_POST['link_category'] = scoper_flt_newlink_category($link_category); } elseif (0 === strpos($referer_name, 'update-bookmark_')) { require_once dirname(__FILE__) . '/hardway-admin-links_rs.php'; $link_category = !empty($_POST['link_category']) ? $_POST['link_category'] : array(); $_POST['link_category'] = scoper_flt_link_category($link_category); } }