/** * Returns an array of capabilities based on the role that is being requested. * * @since 2.0.0 bbPress (r2994) * * @todo Map all of these and deprecate * * @param string $role Optional. Defaults to The role to load caps for * @uses apply_filters() Allow return value to be filtered * * @return array Capabilities for $role */ function bbp_get_caps_for_role($role = '') { // Which role are we looking for? switch ($role) { // Keymaster case bbp_get_keymaster_role(): $caps = array('keep_gate' => true, 'spectate' => true, 'participate' => true, 'moderate' => true, 'throttle' => true, 'view_trash' => true, 'assign_moderators' => true, 'publish_forums' => true, 'edit_forums' => true, 'edit_others_forums' => true, 'delete_forums' => true, 'delete_others_forums' => true, 'read_private_forums' => true, 'read_hidden_forums' => true, 'publish_topics' => true, 'edit_topics' => true, 'edit_others_topics' => true, 'delete_topics' => true, 'delete_others_topics' => true, 'read_private_topics' => true, 'publish_replies' => true, 'edit_replies' => true, 'edit_others_replies' => true, 'delete_replies' => true, 'delete_others_replies' => true, 'read_private_replies' => true, 'manage_topic_tags' => true, 'edit_topic_tags' => true, 'delete_topic_tags' => true, 'assign_topic_tags' => true); break; // Moderator // Moderator case bbp_get_moderator_role(): $caps = array('spectate' => true, 'participate' => true, 'moderate' => true, 'throttle' => true, 'view_trash' => true, 'assign_moderators' => true, 'publish_forums' => true, 'edit_forums' => true, 'read_private_forums' => true, 'read_hidden_forums' => true, 'publish_topics' => true, 'edit_topics' => true, 'edit_others_topics' => true, 'delete_topics' => true, 'delete_others_topics' => true, 'read_private_topics' => true, 'publish_replies' => true, 'edit_replies' => true, 'edit_others_replies' => true, 'delete_replies' => true, 'delete_others_replies' => true, 'read_private_replies' => true, 'manage_topic_tags' => true, 'edit_topic_tags' => true, 'delete_topic_tags' => true, 'assign_topic_tags' => true); break; // Spectators can only read // Spectators can only read case bbp_get_spectator_role(): $caps = array('spectate' => true); break; // Explicitly blocked // Explicitly blocked case bbp_get_blocked_role(): $caps = array('spectate' => false, 'participate' => false, 'moderate' => false, 'throttle' => false, 'view_trash' => false, 'publish_forums' => false, 'edit_forums' => false, 'edit_others_forums' => false, 'delete_forums' => false, 'delete_others_forums' => false, 'read_private_forums' => false, 'read_hidden_forums' => false, 'publish_topics' => false, 'edit_topics' => false, 'edit_others_topics' => false, 'delete_topics' => false, 'delete_others_topics' => false, 'read_private_topics' => false, 'publish_replies' => false, 'edit_replies' => false, 'edit_others_replies' => false, 'delete_replies' => false, 'delete_others_replies' => false, 'read_private_replies' => false, 'manage_topic_tags' => false, 'edit_topic_tags' => false, 'delete_topic_tags' => false, 'assign_topic_tags' => false); break; // Participant/Default // Participant/Default case bbp_get_participant_role(): default: $caps = array('spectate' => true, 'participate' => true, 'read_private_forums' => true, 'publish_topics' => true, 'edit_topics' => true, 'publish_replies' => true, 'edit_replies' => true, 'assign_topic_tags' => true); break; } return apply_filters('bbp_get_caps_for_role', $caps, $role); }
static function user_has_cap($allcaps, $caps, $args, $user) { static $doing = false; // bypass if non-bbpress contents and avoid infinite loop if ($doing === true || !did_action('wp') || !is_bbpress()) { return $allcaps; } $bbp_allcaps = bbp_get_caps_for_role(bbp_get_keymaster_role()); $check_caps = array_intersect(array_values($caps), array_keys($bbp_allcaps)); if (!$check_caps && in_array('upload_files', $caps)) { $check_caps = array('upload_files'); } // bypass non bbpress caps if (!$check_caps || in_array('keep_gate', $check_caps)) { return $allcaps; } $doing = true; if (!($forum_id = bbp_get_forum_id())) { $doing = false; return $allcaps; } // Give all modorator capabilities to optional forum moderators per forum $moderators = bbpresskr()->forum_option('moderators', $forum_id); if (in_array($user->ID, $moderators) && ($new_caps = bbp_get_caps_for_role(bbp_get_moderator_role()))) { // remove all bbpress capabilities and append for asigned role only $_allcaps = array_diff_assoc($allcaps, $bbp_allcaps); $allcaps = array_merge($_allcaps, $new_caps); $allcaps['upload_files'] = true; } // In case we use usermeta for forum moderator setting /*$metakey = "forum_role_{$forum_id}"; // Dobule check forum role still exists. Role may excluded by plugin or updates. if ( isset( $user->$metakey ) && ($new_caps = bbp_get_caps_for_role( $user->$metakey )) ) { // remove all bbpress capabilities and append for asigned role only $_allcaps = array_diff_assoc( $allcaps, $bbp_allcaps ); $allcaps = array_merge( $_allcaps, $new_caps ); $allcaps['upload_files'] = true; }*/ $doing = false; return $allcaps; }
/** * Unlinks Roles/Capabilities. * * @package s2Member\Roles_Caps * @since 110524RC * * @return null */ public static function unlink_roles() { do_action('ws_plugin__s2member_before_unlink_roles', get_defined_vars()); if (!apply_filters('ws_plugin__s2member_lock_roles_caps', FALSE)) { if ($role = get_role('subscriber')) { $role->remove_cap('access_s2member_level0'); } for ($n = 1; $n <= $GLOBALS['WS_PLUGIN__']['s2member']['c']['max_levels']; $n++) { remove_role('s2member_level' . $n); } $full_access_roles = array('administrator', 'editor', 'author', 'contributor'); if (!function_exists('bbp_get_dynamic_roles') && function_exists('bbp_get_caps_for_role') && function_exists('bbp_get_moderator_role')) { $full_access_roles = array_merge($full_access_roles, (array) bbp_get_moderator_role()); } foreach ($full_access_roles as $role) { if ($role = get_role($role)) { for ($n = 0; $n <= $GLOBALS['WS_PLUGIN__']['s2member']['c']['max_levels']; $n++) { $role->remove_cap('access_s2member_level' . $n); } } } } do_action('ws_plugin__s2member_after_unlink_roles', get_defined_vars()); }
/** * Returns the array of forum roles for the site. * * "Owner" is an Administrator, with no restrictions. "Moderator" is self explanatory. "Agent" is just a regular user. "No Access" is blocked from seeing anything on the forum. * * @return array Array of forum roles. */ function bhr_forum_role_names() { return array(bbp_get_keymaster_role() => array('name' => 'Owner', 'capabilities' => bbp_get_caps_for_role(bbp_get_keymaster_role())), bbp_get_moderator_role() => array('name' => 'Moderator', 'capabilities' => bbp_get_caps_for_role(bbp_get_moderator_role())), bbp_get_participant_role() => array('name' => 'Agent', 'capabilities' => bbp_get_caps_for_role(bbp_get_participant_role())), bbp_get_blocked_role() => array('name' => 'No Access', 'capabilities' => bbp_get_caps_for_role(bbp_get_blocked_role()))); }
/** * Returns an array of capabilities based on the role that is being requested. * * @since bbPress (r2994) * * @param string $role Optional. Defaults to The role to load caps for * @uses apply_filters() Allow return value to be filtered * * @return array Capabilities for $role */ function bbp_get_caps_for_role($role = '') { // Which role are we looking for? switch ($role) { // Administrator case 'administrator': $caps = array('publish_forums', 'edit_forums', 'edit_others_forums', 'delete_forums', 'delete_others_forums', 'read_private_forums', 'read_hidden_forums', 'publish_topics', 'edit_topics', 'edit_others_topics', 'delete_topics', 'delete_others_topics', 'read_private_topics', 'publish_replies', 'edit_replies', 'edit_others_replies', 'delete_replies', 'delete_others_replies', 'read_private_replies', 'manage_topic_tags', 'edit_topic_tags', 'delete_topic_tags', 'assign_topic_tags', 'moderate', 'throttle', 'view_trash'); break; // Moderator // Moderator case bbp_get_moderator_role(): $caps = array('read_private_forums', 'read_hidden_forums', 'publish_topics', 'edit_topics', 'edit_others_topics', 'delete_topics', 'delete_others_topics', 'read_private_topics', 'publish_replies', 'edit_replies', 'edit_others_replies', 'delete_replies', 'delete_others_replies', 'read_private_replies', 'manage_topic_tags', 'edit_topic_tags', 'delete_topic_tags', 'assign_topic_tags', 'moderate', 'throttle', 'view_trash'); break; // WordPress Core Roles // WordPress Core Roles case 'editor': case 'author': case 'contributor': case 'subscriber': // bbPress Participant Role // bbPress Participant Role case bbp_get_participant_role(): // Any other role // Any other role default: $caps = array('read_private_forums', 'publish_topics', 'edit_topics', 'publish_replies', 'edit_replies', 'assign_topic_tags'); break; } return apply_filters('bbp_get_caps_for_role', $caps, $role); }
/** * @covers ::bbp_check_for_blacklist */ public function test_should_return_false_for_moderators_to_bypass_blacklist_check() { // Create a moderator user. $old_current_user = 0; $this->old_current_user = get_current_user_id(); $this->set_current_user($this->factory->user->create(array('role' => 'subscriber'))); $this->moderator_id = get_current_user_id(); bbp_set_user_role($this->moderator_id, bbp_get_moderator_role()); $t = $this->factory->topic->create(array('post_author' => bbp_get_current_user_id(), 'post_title' => 'Sting', 'post_content' => 'Beware, there maybe bees hibernating.')); $anonymous_data = false; $author_id = bbp_get_topic_author_id($t); $title = bbp_get_topic_title($t); $content = bbp_get_topic_content($t); update_option('blacklist_keys', "hibernating\nfoo"); $result = bbp_check_for_blacklist($anonymous_data, $author_id, $title, $content); $this->assertFalse($result); // Retore the original user. $this->set_current_user($this->old_current_user); }
/** * Handle the processing and feedback of the admin tools page * * @since bbPress (r2613) * * @uses check_admin_referer() To verify the nonce and the referer * @uses wp_cache_flush() To flush the cache */ function bbp_admin_reset_handler() { // Bail if not resetting if (!bbp_is_post_request() || empty($_POST['bbpress-are-you-sure'])) { return; } // Only keymasters can proceed if (!bbp_is_user_keymaster()) { return; } check_admin_referer('bbpress-reset'); global $wpdb; // Stores messages $messages = array(); $failed = __('Failed', 'bbpress'); $success = __('Success!', 'bbpress'); // Flush the cache; things are about to get ugly. wp_cache_flush(); /** Posts *****************************************************************/ $statement = __('Deleting Posts… %s', 'bbpress'); $sql_posts = $wpdb->get_results("SELECT `ID` FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')", OBJECT_K); $sql_delete = "DELETE FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); /** Post Meta *************************************************************/ if (!empty($sql_posts)) { $sql_meta = array(); foreach ($sql_posts as $key => $value) { $sql_meta[] = $key; } $statement = __('Deleting Post Meta… %s', 'bbpress'); $sql_meta = implode("', '", $sql_meta); $sql_delete = "DELETE FROM `{$wpdb->postmeta}` WHERE `post_id` IN ('{$sql_meta}');"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); } /** Topic Tags ************************************************************/ $statement = __('Deleting Topic Tags… %s', 'bbpress'); $sql_delete = "DELETE a,b,c FROM `{$wpdb->terms}` AS a LEFT JOIN `{$wpdb->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$wpdb->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag';"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); /** User ******************************************************************/ // Delete users if (!empty($_POST['bbpress-delete-imported-users'])) { $sql_users = $wpdb->get_results("SELECT `user_id` FROM `{$wpdb->usermeta}` WHERE `meta_key` = '_bbp_user_id'", OBJECT_K); if (!empty($sql_users)) { $sql_meta = array(); foreach ($sql_users as $key => $value) { $sql_meta[] = $key; } $statement = __('Deleting User… %s', 'bbpress'); $sql_meta = implode("', '", $sql_meta); $sql_delete = "DELETE FROM `{$wpdb->users}` WHERE `ID` IN ('{$sql_meta}');"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); $statement = __('Deleting User Meta… %s', 'bbpress'); $sql_delete = "DELETE FROM `{$wpdb->usermeta}` WHERE `user_id` IN ('{$sql_meta}');"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); } // Delete imported user metadata } else { $statement = __('Deleting User Meta… %s', 'bbpress'); $sql_delete = "DELETE FROM `{$wpdb->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%';"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); } /** Converter *************************************************************/ $statement = __('Deleting Conversion Table… %s', 'bbpress'); $table_name = $wpdb->prefix . 'bbp_converter_translator'; if ($wpdb->get_var("SHOW TABLES LIKE '{$table_name}'") === $table_name) { $wpdb->query("DROP TABLE {$table_name}"); $result = $success; } else { $result = $failed; } $messages[] = sprintf($statement, $result); /** Options ***************************************************************/ $statement = __('Deleting Settings… %s', 'bbpress'); bbp_delete_options(); $messages[] = sprintf($statement, $success); /** Roles *****************************************************************/ $statement = __('Deleting Roles and Capabilities… %s', 'bbpress'); remove_role(bbp_get_moderator_role()); remove_role(bbp_get_participant_role()); bbp_remove_caps(); $messages[] = sprintf($statement, $success); /** Output ****************************************************************/ if (count($messages)) { foreach ($messages as $message) { bbp_admin_tools_feedback($message); } } }
/** * Fetch a filtered list of forum roles that the current user is * allowed to have. * * Simple function who's main purpose is to allow filtering of the * list of forum roles so that plugins can remove inappropriate ones depending * on the situation or user making edits. * * Specifically because without filtering, anyone with the edit_users * capability can edit others to be administrators, even if they are * only editors or authors. This filter allows admins to delegate * user management. * * @since bbPress (r4284) * * @return array */ function bbp_get_dynamic_roles() { return (array) apply_filters('bbp_get_dynamic_roles', array(bbp_get_keymaster_role() => array('name' => __('Keymaster', 'bbpress'), 'capabilities' => bbp_get_caps_for_role(bbp_get_keymaster_role())), bbp_get_moderator_role() => array('name' => __('Moderator', 'bbpress'), 'capabilities' => bbp_get_caps_for_role(bbp_get_moderator_role())), bbp_get_participant_role() => array('name' => __('Participant', 'bbpress'), 'capabilities' => bbp_get_caps_for_role(bbp_get_participant_role())), bbp_get_spectator_role() => array('name' => __('Spectator', 'bbpress'), 'capabilities' => bbp_get_caps_for_role(bbp_get_spectator_role())), bbp_get_blocked_role() => array('name' => __('Blocked', 'bbpress'), 'capabilities' => bbp_get_caps_for_role(bbp_get_blocked_role())))); }
/** * bbPress's version updater looks at what the current database version is, and * runs whatever other code is needed. * * This is most-often used when the data schema changes, but should also be used * to correct issues with bbPress meta-data silently on software update. * * @since bbPress (r4104) */ function bbp_version_updater() { // Get the raw database version $raw_db_version = (int) bbp_get_db_version_raw(); /** 2.0 Branch ************************************************************/ // 2.0, 2.0.1, 2.0.2, 2.0.3 if ($raw_db_version < 200) { // No changes } /** 2.1 Branch ************************************************************/ // 2.1, 2.1.1 if ($raw_db_version < 211) { /** * Repair private and hidden forum data * * @link http://bbpress.trac.wordpress.org/ticket/1891 */ bbp_admin_repair_forum_visibility(); } /** 2.2 Branch ************************************************************/ // 2.2 if ($raw_db_version < 220) { // Remove the Moderator role from the database remove_role(bbp_get_moderator_role()); // Remove the Participant role from the database remove_role(bbp_get_participant_role()); // Remove capabilities bbp_remove_caps(); } /** 2.3 Branch ************************************************************/ // 2.3 if ($raw_db_version < 230) { // No changes } /** All done! *************************************************************/ // Bump the version bbp_version_bump(); // Delete rewrite rules to force a flush bbp_delete_rewrite_rules(); }
/** * Initialize forum-specific roles * * @since 2.6.0 */ public function roles_init() { // Get role IDs $keymaster = bbp_get_keymaster_role(); $moderator = bbp_get_moderator_role(); $participant = bbp_get_participant_role(); $spectator = bbp_get_spectator_role(); $blocked = bbp_get_blocked_role(); // Build the roles into one useful array $this->roles[$keymaster] = new WP_Role('Keymaster', bbp_get_caps_for_role($keymaster)); $this->roles[$moderator] = new WP_Role('Moderator', bbp_get_caps_for_role($moderator)); $this->roles[$participant] = new WP_Role('Participant', bbp_get_caps_for_role($participant)); $this->roles[$spectator] = new WP_Role('Spectator', bbp_get_caps_for_role($spectator)); $this->roles[$blocked] = new WP_Role('Blocked', bbp_get_caps_for_role($blocked)); }
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; }
/** * Return a user's main role for display * * @since bbPress (r3860) * * @param int $user_id * @uses bbp_get_user_role() To get the main user role * @uses bbp_get_moderator_role() To get the moderator role * @uses bbp_get_participant_role() To get the participant role * @uses bbp_get_moderator_role() To get the moderator role * @uses apply_filters() Calls 'bbp_get_user_display_role' with the * display role, user id, and user role * @return string */ function bbp_get_user_display_role($user_id = 0) { // Validate user id $user_id = bbp_get_user_id($user_id, false, false); $user_role = bbp_get_user_role($user_id); // Capes earn Vinz Clortho status if (is_super_admin($user_id)) { $role = __('Key Master', 'bbpress'); // Not the keymaster of Gozer } else { // Get the user's main role for display switch ($user_role) { /** bbPress Roles *********************************************/ // Anonymous case bbp_get_anonymous_role(): $role = __('Guest', 'bbpress'); break; // Multisite Participant Role // Multisite Participant Role case bbp_get_participant_role(): $role = __('Member', 'bbpress'); break; // Moderator // Moderator case bbp_get_moderator_role(): $role = __('Moderator', 'bbpress'); break; /** WordPress Core Roles **************************************/ /** WordPress Core Roles **************************************/ case 'administrator': case 'editor': case 'author': case 'contributor': case 'subscriber': default: // Any other role (plugins, etc...) global $wp_roles; // Load roles if not set if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } // Get a translated role name if (!empty($wp_roles->role_names[$user_role])) { $role = translate_user_role($wp_roles->role_names[$user_role]); } else { $role = __('Member', 'bbpress'); } break; } } return apply_filters('bbp_get_user_display_role', $role, $user_id, $user_role); }
function ntwb_bbpress_custom_role_names() { return array(bbp_get_keymaster_role() => array('name' => 'Captain', 'capabilities' => bbp_get_caps_for_role(bbp_get_keymaster_role())), bbp_get_moderator_role() => array('name' => 'Veteran', 'capabilities' => bbp_get_caps_for_role(bbp_get_moderator_role())), bbp_get_participant_role() => array('name' => 'Member', 'capabilities' => bbp_get_caps_for_role(bbp_get_participant_role())), bbp_get_spectator_role() => array('name' => 'Guest', 'capabilities' => bbp_get_caps_for_role(bbp_get_spectator_role())), bbp_get_blocked_role() => array('name' => 'Blocked', 'capabilities' => bbp_get_caps_for_role(bbp_get_blocked_role()))); }
/** * Unlinks Roles/Capabilities. * * @package s2Member\Roles_Caps * @since 110524RC * * @return null */ public static function unlink_roles() { do_action("ws_plugin__s2member_before_unlink_roles", get_defined_vars()); if (!apply_filters("ws_plugin__s2member_lock_roles_caps", FALSE)) { if ($role = get_role("subscriber")) { $role->remove_cap("access_s2member_level0"); } for ($n = 1; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["max_levels"]; $n++) { remove_role("s2member_level" . $n); } $full_access_roles = array("administrator", "editor", "author", "contributor"); if (function_exists("bbp_get_caps_for_role") && !function_exists("bbp_get_dynamic_roles")) { $full_access_roles = array_merge($full_access_roles, (array) bbp_get_moderator_role()); } foreach ($full_access_roles as $role) { if ($role = get_role($role)) { for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["max_levels"]; $n++) { $role->remove_cap("access_s2member_level" . $n); } } } } do_action("ws_plugin__s2member_after_unlink_roles", get_defined_vars()); }
/** * Handle the processing and feedback of the admin tools page * * @since bbPress (r2613) * * @uses check_admin_referer() To verify the nonce and the referer * @uses wp_cache_flush() To flush the cache */ function bbp_admin_reset_handler() { if ('post' == strtolower($_SERVER['REQUEST_METHOD']) && !empty($_POST['bbpress-are-you-sure'])) { check_admin_referer('bbpress-reset'); global $wpdb; // Stores messages $messages = array(); $failed = __('Failed', 'bbpress'); $success = __('Success!', 'bbpress'); // Flush the cache; things are about to get ugly. wp_cache_flush(); /** Posts *************************************************************/ $statement = __('Deleting Posts… %s', 'bbpress'); $sql_posts = $wpdb->get_results("SELECT `ID` FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')", OBJECT_K); $sql_delete = "DELETE FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); /** Post Meta *********************************************************/ if (!empty($sql_posts)) { foreach ($sql_posts as $key => $value) { $sql_meta[] = $key; } $statement = __('Deleting Post Meta… %s', 'bbpress'); $sql_meta = implode("', '", $sql_meta); $sql_delete = "DELETE FROM `{$wpdb->postmeta}` WHERE `post_id` IN ('{$sql_meta}');"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); } /** Topic Tags ********************************************************/ // @todo /** User Meta *********************************************************/ $statement = __('Deleting User Meta… %s', 'bbpress'); $sql_delete = "DELETE FROM `{$wpdb->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%';"; $result = is_wp_error($wpdb->query($sql_delete)) ? $failed : $success; $messages[] = sprintf($statement, $result); /** Converter *********************************************************/ $statement = __('Deleting Conversion Table… %s', 'bbpress'); $table_name = $wpdb->prefix . 'bbp_converter_translator'; if ($wpdb->get_var("SHOW TABLES LIKE '{$table_name}'") == $table_name) { $wpdb->query("DROP TABLE {$table_name}"); $result = $success; } else { $result = $failed; } $messages[] = sprintf($statement, $result); /** Options ***********************************************************/ $statement = __('Deleting Settings… %s', 'bbpress'); bbp_delete_options(); $messages[] = sprintf($statement, $success); /** Roles *************************************************************/ $statement = __('Deleting Roles and Capabilities… %s', 'bbpress'); remove_role(bbp_get_moderator_role()); remove_role(bbp_get_participant_role()); bbp_remove_caps(); $messages[] = sprintf($statement, $success); /** Output ************************************************************/ if (count($messages)) { foreach ($messages as $message) { bbp_admin_tools_feedback($message); } } } }
/** * Get moderators for a specific object ID. Will return global moderators when * object ID is empty. * * @since 2.6.0 bbPress * * @param int $object_id * * @return array */ function bbp_get_moderators($object_id = 0) { // Get global moderators if (empty($object_id)) { $users = get_users(array('role__in' => bbp_get_moderator_role())); // Get object moderators } else { $users = get_users(array('include' => bbp_get_moderator_ids($object_id))); } return apply_filters('bbp_get_moderators', $users, $object_id); }