Пример #1
0
 /**
  * Get valid roles for forums based on bbPress version
  *
  * @return array list of roles
  */
 function d4p_bbpress_get_user_roles()
 {
     $roles = array();
     $dynamic_roles = bbp_get_dynamic_roles();
     foreach ($dynamic_roles as $role => $obj) {
         $roles[$role] = $obj['name'];
     }
     return $roles;
 }
Пример #2
0
 /**
  * Get valid roles for forums based on bbPress version
  *
  * @return array list of roles
  */
 function d4p_bbpress_get_user_roles()
 {
     $roles = array();
     if (d4p_bbpress_version() < 22) {
         global $wp_roles;
         foreach ($wp_roles->role_names as $role => $title) {
             $roles[$role] = $title;
         }
     } else {
         $dynamic_roles = bbp_get_dynamic_roles();
         foreach ($dynamic_roles as $role => $obj) {
             $roles[$role] = $obj['name'];
         }
     }
     return $roles;
 }
Пример #3
0
 /**
  * Return user's forums role for display in the WordPress Users list table
  *
  * @since bbPress (r4337)
  *
  * @param string $retval
  * @param string $column_name
  * @param int $user_id
  *
  * @return string Displayable bbPress user role
  */
 public static function user_role_row($retval = '', $column_name = '', $user_id = 0)
 {
     // Only looking for bbPress's user role column
     if ('bbp_user_role' === $column_name) {
         // Get the users role
         $user_role = bbp_get_user_role($user_id);
         $retval = false;
         // Translate user role for display
         if (!empty($user_role)) {
             $roles = bbp_get_dynamic_roles();
             $retval = translate_user_role($roles[$user_role]['name']);
         }
     }
     // Pass retval through
     return $retval;
 }
/**
 * Return a user's forums role
 *
 * @since bbPress (r3860)
 *
 * @param int $user_id
 * @uses bbp_get_user_id() To get the user id
 * @uses get_userdata() To get the user data
 * @uses apply_filters() Calls 'bbp_get_user_role' with the role and user id
 * @return string
 */
function bbp_get_user_role($user_id = 0)
{
    // Validate user id
    $user_id = bbp_get_user_id($user_id);
    $user = get_userdata($user_id);
    $role = false;
    // User has roles so look for a bbPress one
    if (!empty($user->roles)) {
        // Look for a bbPress role
        $roles = array_intersect(array_values($user->roles), array_keys(bbp_get_dynamic_roles()));
        // If there's a role in the array, use the first one. This isn't very
        // smart, but since roles aren't exactly hierarchical, and bbPress
        // does not yet have a UI for multiple user roles, it's fine for now.
        if (!empty($roles)) {
            $role = array_shift($roles);
        }
    }
    return apply_filters('bbp_get_user_role', $role, $user_id, $user);
}
Пример #5
0
/**
 * Output forum role selector (for user edit)
 *
 * @since 2.2.0 bbPress (r4284)
 */
function bbp_edit_user_forums_role()
{
    // Return if no user is being edited
    if (!bbp_is_single_user_edit()) {
        return;
    }
    // Get the user's current forum role
    $user_role = bbp_get_user_role(bbp_get_displayed_user_id());
    // Get the folum roles
    $dynamic_roles = bbp_get_dynamic_roles();
    // Only keymasters can set other keymasters
    if (!bbp_is_user_keymaster()) {
        unset($dynamic_roles[bbp_get_keymaster_role()]);
    }
    ?>

	<select name="bbp-forums-role" id="bbp-forums-role">
		<option value=""><?php 
    esc_html_e('&mdash; No role for these forums &mdash;', 'bbpress');
    ?>
</option>

		<?php 
    foreach ($dynamic_roles as $role => $details) {
        ?>

			<option <?php 
        selected($user_role, $role);
        ?>
 value="<?php 
        echo esc_attr($role);
        ?>
"><?php 
        echo bbp_translate_user_role($details['name']);
        ?>
</option>

		<?php 
    }
    ?>

	</select>

	<?php 
}
Пример #6
0
/**
 * Removes bbPress-specific user roles.
 *
 * @since bbPress (r2741)
 * @deprecated since version 2.2
 */
function bbp_remove_roles()
{
    // Remove the bbPress roles
    foreach (array_keys(bbp_get_dynamic_roles()) as $bbp_role) {
        remove_role($bbp_role);
    }
    // Some early adopters may have a deprecated visitor role. It was later
    // replaced by the Spectator role.
    remove_role('bbp_visitor');
}
Пример #7
0
 function get_user_roles()
 {
     $bbp_roles = bbp_get_dynamic_roles();
     $keymaster = bbp_get_keymaster_role();
     $moderator = bbp_get_moderator_role();
     $blocked = bbp_get_blocked_role();
     // double check if the role exists
     if (isset($bbp_roles[$keymaster])) {
         unset($bbp_roles[$keymaster]);
     }
     if (isset($bbp_roles[$moderator])) {
         unset($bbp_roles[$moderator]);
     }
     if (isset($bbp_roles[$blocked])) {
         unset($bbp_roles[$blocked]);
     }
     $bbp_roles['bbpkr_anonymous'] = array('name' => __('Anonymous', 'bbpresskr'), 'caps' => array('spectate' => true));
     return $bbp_roles;
 }
Пример #8
0
// output primary role selection dropdown list
$this->user_primary_role_dropdown_list($this->user_to_edit->roles);
$values = array_values($this->user_to_edit->roles);
$primary_role = array_shift($values);
// get 1st element from roles array
if (function_exists('bbp_filter_blog_editable_roles')) {
    // bbPress plugin is active
    ?>
	
	<div style="margin-top: 5px;margin-bottom: 5px; font-weight: bold;"><?php 
    esc_html_e('bbPress Role:', 'ure');
    ?>
</div>
<?php 
    // Get the roles
    $dynamic_roles = bbp_get_dynamic_roles();
    $bbp_user_role = bbp_get_user_role($this->user_to_edit->ID);
    if (!empty($bbp_user_role)) {
        echo $dynamic_roles[$bbp_user_role]['name'];
    }
}
?>
			<div style="margin-top: 5px;margin-bottom: 5px; font-weight: bold;"><?php 
esc_html_e('Other Roles:', 'ure');
?>
</div>
<?php 
foreach ($this->roles as $role_id => $role) {
    if (($show_admin_role || $role_id != 'administrator') && $role_id !== $primary_role) {
        if ($this->user_can($role_id)) {
            $checked = 'checked="checked"';
Пример #9
0
/**
 * Allow global access setting field
 *
 * @since 2.0.0 bbPress (r3378)
 *
 * @uses checked() To display the checked attribute
 */
function bbp_admin_setting_callback_global_access()
{
    // Get the default role once rather than loop repeatedly below
    $default_role = bbp_get_default_role();
    // Start the output buffer for the select dropdown
    ob_start();
    ?>

	</label>
	<label for="_bbp_default_role">
		<select name="_bbp_default_role" id="_bbp_default_role" <?php 
    bbp_maybe_admin_setting_disabled('_bbp_default_role');
    ?>
>
		<?php 
    foreach (bbp_get_dynamic_roles() as $role => $details) {
        ?>

			<option <?php 
        selected($default_role, $role);
        ?>
 value="<?php 
        echo esc_attr($role);
        ?>
"><?php 
        echo translate_user_role($details['name']);
        ?>
</option>

		<?php 
    }
    ?>
		</select>

	<?php 
    $select = ob_get_clean();
    ?>

	<label for="_bbp_allow_global_access">
		<input name="_bbp_allow_global_access" id="_bbp_allow_global_access" type="checkbox" value="1" <?php 
    checked(bbp_allow_global_access(true));
    bbp_maybe_admin_setting_disabled('_bbp_allow_global_access');
    ?>
 />
		<?php 
    printf(esc_html__('Automatically give registered visitors the %s forum role', 'bbpress'), $select);
    ?>
	</label>

<?php 
}
Пример #10
0
    public function display()
    {
        $caps_readable = $this->lib->get('caps_readable');
        $show_deprecated_caps = $this->lib->get('show_deprecated_caps');
        $edit_user_caps_mode = $this->lib->get_edit_user_caps_mode();
        $caps_access_restrict_for_simple_admin = $this->lib->get_option('caps_access_restrict_for_simple_admin', 0);
        $user_info = $this->get_user_info();
        ?>

<div class="postbox" style="float:left;min-width:1000px;width: 100%;">
    <div id="ure_user_caps_header">
        <span id="ure_user_caps_title"><?php 
        esc_html_e('Change capabilities for user', 'user-role-editor');
        ?>
</span> <?php 
        echo $user_info;
        ?>
    </div>
    <div class="inside"> 
<table cellpadding="0" cellspacing="0" style="width: 100%;">
	<tr>
		<td>&nbsp;</td>		
		<td style="padding-left: 10px; padding-bottom: 5px;">
  <?php 
        if (is_super_admin() || !$this->multisite || !class_exists('User_Role_Editor_Pro') || !$caps_access_restrict_for_simple_admin) {
            if ($caps_readable) {
                $checked = 'checked="checked"';
            } else {
                $checked = '';
            }
            ?>
  
		<input type="checkbox" name="ure_caps_readable" id="ure_caps_readable" value="1" 
      <?php 
            echo $checked;
            ?>
 onclick="ure_turn_caps_readable(<?php 
            echo $this->user_to_edit->ID;
            ?>
);"  />
    <label for="ure_caps_readable"><?php 
            esc_html_e('Show capabilities in human readable form', 'user-role-editor');
            ?>
</label>&nbsp;&nbsp;&nbsp;
<?php 
            if ($show_deprecated_caps) {
                $checked = 'checked="checked"';
            } else {
                $checked = '';
            }
            ?>
    <input type="checkbox" name="ure_show_deprecated_caps" id="ure_show_deprecated_caps" value="1" 
        <?php 
            echo $checked;
            ?>
 onclick="ure_turn_deprecated_caps(<?php 
            echo $this->user_to_edit->ID;
            ?>
);"/>
    <label for="ure_show_deprecated_caps"><?php 
            esc_html_e('Show deprecated capabilities', 'user-role-editor');
            ?>
</label>      
<?php 
        }
        ?>
		</td>
	</tr>	
	<tr>
		<td id="ure_user_roles">
			<div class="ure-user-role-section-title"><?php 
        esc_html_e('Primary Role:', 'user-role-editor');
        ?>
</div>
<?php 
        $this->show_primary_role_dropdown_list($this->user_to_edit->roles);
        if (function_exists('bbp_filter_blog_editable_roles')) {
            // bbPress plugin is active
            ?>
	
	<div class="ure-user-role-section-title" style="margin-top: 5px;"><?php 
            esc_html_e('bbPress Role:', 'user-role-editor');
            ?>
</div>
<?php 
            $dynamic_roles = bbp_get_dynamic_roles();
            $bbp_user_role = bbp_get_user_role($this->user_to_edit->ID);
            if (!empty($bbp_user_role)) {
                echo $dynamic_roles[$bbp_user_role]['name'];
            }
        }
        ?>
			<div style="margin-top: 5px;margin-bottom: 5px; font-weight: bold;"><?php 
        esc_html_e('Other Roles:', 'user-role-editor');
        ?>
</div>
<?php 
        $this->show_secondary_roles();
        ?>
		</td>
		<td style="padding-left: 5px; padding-top: 5px; border-top: 1px solid #ccc;">  	
    <?php 
        $this->display_caps(false, $edit_user_caps_mode);
        ?>
		</td>
	</tr>
</table>
  <input type="hidden" name="object" value="user" />
  <input type="hidden" name="user_id" value="<?php 
        echo $this->user_to_edit->ID;
        ?>
" /> 
    </div>  
</div>
<?php 
    }
Пример #11
0
/**
 * Removes the bbPress roles from the editable roles array
 *
 * This used to use array_diff_assoc() but it randomly broke before 2.2 release.
 * Need to research what happened, and if there's a way to speed this up.
 *
 * @since bbPress (r4303)
 *
 * @param array $all_roles All registered roles
 * @return array 
 */
function bbp_filter_blog_editable_roles($all_roles = array())
{
    // Loop through bbPress roles
    foreach (array_keys(bbp_get_dynamic_roles()) as $bbp_role) {
        // Loop through WordPress roles
        foreach (array_keys($all_roles) as $wp_role) {
            // If keys match, unset
            if ($wp_role == $bbp_role) {
                unset($all_roles[$wp_role]);
            }
        }
    }
    return $all_roles;
}
Пример #12
0
/**
 * Return a user's forums role
 *
 * @since bbPress (r3860)
 *
 * @param int $user_id
 * @uses bbp_get_user_id() To get the user id
 * @uses get_userdata() To get the user data
 * @uses apply_filters() Calls 'bbp_get_user_role' with the role and user id
 * @return string
 */
function bbp_get_user_role($user_id = 0)
{
    // Validate user id
    $user_id = bbp_get_user_id($user_id, false, false);
    $user = get_userdata($user_id);
    $role = false;
    // User has roles so lets
    if (!empty($user->roles)) {
        $roles = array_intersect(array_values($user->roles), array_keys(bbp_get_dynamic_roles()));
        // If there's a role in the array, use the first one
        if (!empty($roles)) {
            $role = array_shift(array_values($roles));
        }
    }
    return apply_filters('bbp_get_user_role', $role, $user_id, $user);
}
Пример #13
0
/**
 * Output forum role selector (for user edit)
 *
 * @since bbPress (r4284)
 */
function bbp_admin_setting_callback_default_role()
{
    $default_role = bbp_get_default_role();
    ?>

	<select name="_bbp_default_role" id="_bbp_default_role" <?php 
    bbp_maybe_admin_setting_disabled('_bbp_default_role');
    ?>
>

		<?php 
    foreach (bbp_get_dynamic_roles() as $role => $details) {
        ?>

			<option <?php 
        selected($default_role, $role);
        ?>
 value="<?php 
        echo esc_attr($role);
        ?>
"><?php 
        echo translate_user_role($details['name']);
        ?>
</option>

		<?php 
    }
    ?>

	</select>

	<?php 
}