BP_REST_Document_Endpoint::get_document_current_user_permissions( BP_Document $document, array $request )
Get document permissions based on current user.
Description
Parameters
- $document
-
(Required) The Document object.
- $request
-
(Required) Request parameter as array.
Return
(array)
Source
File: bp-document/classes/class-bp-rest-document-endpoint.php
protected function get_document_current_user_permissions( $document, $request ) {
$retval = array(
'download' => 0,
'copy_download_link' => 0,
'edit_privacy' => 0,
'edit_post_privacy' => 0,
'rename' => 0,
'move' => 0,
'delete' => 0,
);
$document_privacy = array();
if ( ! empty( $document->attachment_id ) ) {
$document_privacy = bp_document_user_can_manage_document( $document->id, bp_loggedin_user_id() );
} else {
$document_privacy = bp_document_user_can_manage_folder( $document->id, bp_loggedin_user_id() );
}
if ( ! empty( $document_privacy ) ) {
if ( isset( $document_privacy['can_download'] ) && true === (bool) $document_privacy['can_download'] ) {
$retval['download'] = 1;
$retval['copy_download_link'] = 1;
}
if ( isset( $document_privacy['can_manage'] ) && true === (bool) $document_privacy['can_manage'] ) {
$retval['rename'] = 1;
$retval['delete'] = 1;
if ( 0 === (int) $document->group_id && 0 === (int) $document->parent ) {
if ( ! empty( $document->attachment_id ) ) {
$child_activity = get_post_meta( $document->attachment_id, 'bp_document_activity_id', true );
if ( $child_activity ) {
$parent_activity_id = get_post_meta( $document->attachment_id, 'bp_document_parent_activity_id', true );
if ( bp_is_active( 'activity' ) ) {
$retval['edit_post_privacy'] = $parent_activity_id;
} else {
$retval['edit_post_privacy'] = $document->activity_id;
}
}
} else {
$retval['edit_privacy'] = 1;
}
}
}
if ( isset( $document_privacy['can_add'] ) && true === (bool) $document_privacy['can_add'] ) {
$retval['move'] = 1;
}
}
if (
isset( $request['support'] )
&& (
'activity' === $request['support']
|| 'forums' === $request['support']
|| 'message' === $request['support']
)
) {
unset( $retval['rename'] );
if (
'activity' === $request['support']
|| 'message' === $request['support']
|| 'forums' === $request['support']
) {
unset( $retval['edit_privacy'] );
unset( $retval['edit_post_privacy'] );
}
if ( 'message' === $request['support'] ) {
unset( $retval['move'] );
unset( $retval['delete'] );
}
if ( 'forums' === $request['support'] ) {
unset( $retval['move'] );
}
}
return $retval;
}
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.