bbp_map_topic_tag_meta_caps( array $caps, string $cap, int $user_id, array $args )
Maps topic tag capabilities
Description Description
Parameters Parameters
- $caps
-
(Required) Capabilities for meta capability
- $cap
-
(Required) Capability name
- $user_id
-
(Required) User id
- $args
-
(Required) Arguments
Return Return
(array) Actual capabilities for meta capability
Source Source
File: includes/topics/capabilities.php
function bbp_map_topic_tag_meta_caps( $caps, $cap, $user_id, $args ) { // What capability is being checked? switch ( $cap ) { /** Assignment ********************************************************/ case 'assign_topic_tags' : // Get post $post_id = ! empty( $args[0] ) ? get_post( $args[0] )->ID : 0; // Add 'do_not_allow' cap if user is spam or deleted if ( bbp_is_user_inactive( $user_id ) ) { $caps = array( 'do_not_allow' ); // Moderators can always assign } elseif ( user_can( $user_id, 'moderate', $post_id ) ) { $caps = array( 'moderate' ); // Do not allow if topic tags are disabled } elseif ( ! bbp_allow_topic_tags() ) { $caps = array( 'do_not_allow' ); } break; /** Management ********************************************************/ case 'manage_topic_tags' : // Moderators can always edit if ( user_can( $user_id, 'moderate' ) ) { $caps = array( 'moderate' ); } break; /** Editing ***********************************************************/ case 'edit_topic_tags' : // Moderators can always edit if ( user_can( $user_id, 'moderate' ) ) { $caps = array( 'moderate' ); } break; case 'edit_topic_tag' : // Get the term $_tag = get_term( $args[0], bbp_get_topic_tag_tax_id() ); if ( ! empty( $_tag ) ) { // Add 'do_not_allow' cap if user is spam or deleted if ( bbp_is_user_inactive( $user_id ) ) { $caps = array( 'do_not_allow' ); // Moderators can always edit topic tags } elseif ( user_can( $user_id, 'moderate', $_tag->term_id ) ) { $caps = array( 'spectate' ); // Fallback to edit_terms. } else { $taxonomy = get_taxonomy( bbp_get_topic_tag_tax_id() ); $caps = array( $taxonomy->cap->edit_terms ); } } break; /** Deleting **********************************************************/ case 'delete_topic_tags' : // Moderators can always edit if ( user_can( $user_id, 'moderate' ) ) { $caps = array( 'moderate' ); } break; case 'delete_topic_tag' : // Get the term $_tag = get_term( $args[0], bbp_get_topic_tag_tax_id() ); if ( ! empty( $_tag ) ) { // Add 'do_not_allow' cap if user is spam or deleted if ( bbp_is_user_inactive( $user_id ) ) { $caps = array( 'do_not_allow' ); // Moderators can always delete topic tags } elseif ( user_can( $user_id, 'moderate', $_tag->term_id ) ) { $caps = array( 'spectate' ); // Fallback to delete_terms. } else { $taxonomy = get_taxonomy( $_tag->post_type ); $caps = array( $taxonomy->cap->delete_terms ); } } break; /** Admin *************************************************************/ case 'bbp_topic_tags_admin' : // Moderators can always edit if ( user_can( $user_id, 'moderate' ) ) { $caps = array( 'moderate' ); } break; } // Filter & return return (array) apply_filters( 'bbp_map_topic_tag_meta_caps', $caps, $cap, $user_id, $args ); }
Changelog Changelog
Version | Description |
---|---|
2.2.0 | Introduced. |