bp_media_user_can_delete( int|BP_Media $media = false )

Determine if the current user can delete an media item.

Description

Parameters

$media

(Optional) BP_Media object or ID of the media

Default value: false

Return

(bool) True if can delete, false otherwise.

Source

File: bp-media/bp-media-template.php

645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
function bp_media_user_can_delete( $media = false ) {
 
    // Assume the user cannot delete the media item.
    $can_delete = false;
 
    if ( empty( $media ) ) {
        return $can_delete;
    }
 
    if ( ! is_object( $media ) ) {
        $media = new BP_Media( $media );
    }
 
    if ( empty( $media ) ) {
        return $can_delete;
    }
 
    // Only logged in users can delete media.
    if ( is_user_logged_in() ) {
 
        // Community moderators can always delete media (at least for now).
        if ( bp_current_user_can( 'bp_moderate' ) ) {
            $can_delete = true;
        }
 
        // Users are allowed to delete their own media.
        if ( isset( $media->user_id ) && ( $media->user_id === bp_loggedin_user_id() ) ) {
            $can_delete = true;
        }
 
        if ( bp_is_active( 'groups' ) && $media->group_id > 0 ) {
            $manage   = groups_can_user_manage_document( bp_loggedin_user_id(), $media->group_id );
            $status   = bp_group_get_media_status( $media->group_id );
            $is_admin = groups_is_user_admin( bp_loggedin_user_id(), $media->group_id );
            $is_mod   = groups_is_user_mod( bp_loggedin_user_id(), $media->group_id );
            if ( $manage ) {
                if ( $media->user_id === bp_loggedin_user_id() ) {
                    $can_delete = true;
                } elseif ( 'members' === $status && ( $is_mod || $is_admin ) ) {
                    $can_delete = true;
                } elseif ( 'mods' == $status && ( $is_mod || $is_admin ) ) {
                    $can_delete = true;
                } elseif ( 'admins' == $status && $is_admin ) {
                    $can_delete = true;
                }
            }
        }
    }
 
    /**
     * Filters whether the current user can delete an media item.
     *
     * @since BuddyBoss 1.2.0
     *
     * @param bool   $can_delete Whether the user can delete the item.
     * @param object $media   Current media item object.
     */
    return (bool) apply_filters( 'bp_media_user_can_delete', $can_delete, $media );
}

Changelog

Changelog
Version Description
BuddyBoss 1.2.0 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.