Exemplo n.º 1
0
function _pp_editable_assignment_ids($ass_ids)
{
    if (pp_is_user_administrator()) {
        return $ass_ids;
    }
    global $wpdb, $pp_admin;
    $results = $wpdb->get_results("SELECT assignment_id, role_name FROM {$wpdb->ppc_roles} WHERE assignment_id IN ('" . implode("','", $ass_ids) . "')");
    $remove_ids = array();
    foreach ($results as $row) {
        if (!($role_attrib = pp_get_role_attributes($row->role_name))) {
            continue;
        }
        if (!pp_user_can_admin_role($role_attrib->base_role_name, $role_attrib->object_type)) {
            $remove_ids[] = $row->assignment_id;
        }
    }
    $ass_ids = array_diff($ass_ids, $remove_ids);
    return $ass_ids;
}
Exemplo n.º 2
0
$role_name = isset($_GET['pp_role_name']) ? pp_sanitize_csv($_GET['pp_role_name']) : '';
if ($force_vars = apply_filters('pp_ajax_role_ui_vars', array(), compact('for_item_source', 'for_item_type', 'role_name'))) {
    extract($force_vars);
}
$html = '';
switch ($_GET['pp_ajax_ui']) {
    case 'get_role_options':
        if (!is_user_logged_in()) {
            echo '<option>' . __('(login timed out)', 'pp') . '</option>';
            exit;
        }
        global $pp_admin, $wp_roles, $pp_role_defs;
        //$is_tx_management = ( 'term' == $for_item_source );
        if ($roles = _pp_get_type_roles($for_item_source, $for_item_type)) {
            foreach ($roles as $_role_name => $role_title) {
                if (pp_user_can_admin_role($_role_name, $for_item_type)) {
                    $selected = $_role_name == $role_name ? "selected='selected'" : '';
                    $html .= "<option value='{$_role_name}' {$selected}>{$role_title}</option>";
                }
            }
        } else {
            $caption = __('(invalid role definition)', 'pp');
            $html .= "<option value='' {$selected}>{$caption}</option>";
        }
        break;
    case 'get_conditions_ui':
        if (!is_user_logged_in()) {
            echo '<p>' . __('(login timed out)', 'pp') . '</p><div class="pp-checkbox"><input type="checkbox" name="pp_select_for_item" style="display:none"><input type="checkbox" name="pp_select_for_item" style="display:none"></div>';
            exit;
        }
        global $pp_role_defs;