bp_document_user_can_edit( int|BP_Document $document = false )
Determine if the current user can edit an document item.
Description
Parameters
- $document
-
(Optional) BP_Document object or ID of the document.
Default value: false
Return
(bool) True if can edit, false otherwise.
Source
File: bp-document/bp-document-template.php
function bp_document_user_can_edit( $document = false ) { // Assume the user cannot edit the document item. $can_edit = false; if ( empty( $document ) ) { return $can_edit; } if ( ! is_object( $document ) ) { $document = new BP_Document( $document ); } if ( empty( $document ) ) { return $can_edit; } // Only logged in users can edit document. if ( is_user_logged_in() ) { // Community moderators can always edit document (at least for now). if ( bp_current_user_can( 'bp_moderate' ) ) { $can_edit = true; } // Users are allowed to edit their own document. if ( isset( $document->user_id ) && ( $document->user_id === bp_loggedin_user_id() ) ) { $can_edit = true; } if ( bp_is_active( 'groups' ) && $document->group_id > 0 ) { $manage = groups_can_user_manage_document( bp_loggedin_user_id(), $document->group_id ); $status = bp_group_get_media_status( $document->group_id ); $is_admin = groups_is_user_admin( bp_loggedin_user_id(), $document->group_id ); $is_mod = groups_is_user_mod( bp_loggedin_user_id(), $document->group_id ); if ( $manage ) { if ( $document->user_id === bp_loggedin_user_id() ) { $can_edit = true; } elseif ( 'members' === $status && ( $is_mod || $is_admin ) ) { $can_edit = true; } elseif ( 'mods' == $status && ( $is_mod || $is_admin ) ) { $can_edit = true; } elseif ( 'admins' == $status && $is_admin ) { $can_edit = true; } } } } /** * Filters whether the current user can edit an document item. * * @since BuddyBoss 1.4.2 * * @param bool $can_edit Whether the user can edit the item. * @param object $document Current document item object. */ return (bool) apply_filters( 'bp_document_user_can_edit', $can_edit, $document ); }
Changelog
Version | Description |
---|---|
BuddyBoss 1.4.2 | 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.