function get_assigned_roles($scope, $role_basis, $src_or_tx_name, $args = array())
 {
     global $wpdb;
     $defaults = array('id' => false, 'ug_id' => 0, 'join' => '', 'role_handles' => '');
     $args = array_merge($defaults, (array) $args);
     extract($args);
     $id = is_string($id) ? (int) $id : $id;
     $ug_id = is_string($ug_id) ? (int) $ug_id : $ug_id;
     if (BLOG_SCOPE_RS == $scope) {
         return ScoperRoleAssignments::get_assigned_blog_roles($role_basis);
     }
     $roles = array();
     switch ($role_basis) {
         case ROLE_BASIS_USER:
             $col_ug_id = 'user_id';
             $ug_clause = $ug_id ? " AND user_id = '{$ug_id}'" : 'AND user_id > 0';
             break;
         case ROLE_BASIS_GROUPS:
             $col_ug_id = 'group_id';
             $ug_clause = $ug_id ? " AND group_id = '{$ug_id}'" : 'AND group_id > 0';
             break;
     }
     $id_clause = false === $id ? '' : "AND obj_or_term_id = '{$id}'";
     if ($role_handles) {
         if (!is_array($role_handles)) {
             $role_handles = (array) $role_handles;
         }
         $role_clause = $role_handles ? "AND role_name IN ('" . implode("', '", scoper_role_handles_to_names($role_handles)) . "')" : '';
     } else {
         $role_clause = '';
     }
     $qry = "SELECT {$col_ug_id}, obj_or_term_id, role_name, assign_for, assignment_id, inherited_from, date_limited, start_date_gmt, end_date_gmt, content_date_limited, content_min_date_gmt, content_max_date_gmt FROM {$wpdb->user2role2object_rs} AS uro " . "{$join} WHERE role_type = 'rs' {$role_clause} AND scope = %s AND src_or_tx_name = %s {$id_clause} {$ug_clause}";
     $results = scoper_get_results($wpdb->prepare($qry, $scope, $src_or_tx_name));
     foreach ($results as $role) {
         $role_handle = 'rs_' . $role->role_name;
         $roles[$role->obj_or_term_id][$role_handle][$role->{$col_ug_id}] = (array) $role;
     }
     return $roles;
 }
Ejemplo n.º 2
0
        printf(__('Role Assignments Updated: %1$s for %2$s', 'scoper'), $roles_msg, $agents_msg);
        ?>

			</p></div>
		<?php 
    }
    ?>
 
<?php 
}
// end submission response block
// =========================== Display UI ===============================
//$blog_roles[role_basis] [role_handle] [agent_id] = 1
$blog_roles = array();
foreach ($role_bases as $role_basis) {
    $blog_roles[$role_basis] = ScoperRoleAssignments::get_assigned_blog_roles($role_basis);
}
$assignment_modes = array(ASSIGN_FOR_ENTITY_RS => __('Assign', 'scoper'), REMOVE_ASSIGNMENT_RS => __('Remove', 'scoper'));
?>

<div class="wrap agp-width97">
<h2><?php 
_e('Assign General Roles', 'scoper');
?>
</h2>
<?php 
if (scoper_get_option('display_hints')) {
    echo '<div class="rs-hint">';
    _e("Supplement any user's site-wide WordPress Role with additional, type-specific role(s). This does not alter the WordPress role.", 'scoper');
    echo '</div>';
}