bp_media_user_can_manage_album( int $album_id, int $user_id )
Check user have a permission to manage the album.
Description
Parameters
- $album_id
-
(Required)
- $user_id
-
(Required)
Return
(mixed|void)
Source
File: bp-media/bp-media-functions.php
function bp_media_user_can_manage_album( $album_id = 0, $user_id = 0 ) {
$can_manage = false;
$can_view = false;
$can_download = false;
$can_add = false;
$album = new BP_Media_Album( $album_id );
$data = array();
switch ( $album->privacy ) {
case 'public':
if ( $album->user_id === $user_id ) {
$can_add = true;
$can_manage = true;
$can_view = true;
$can_download = true;
} elseif ( bp_current_user_can( 'bp_moderate' ) ) {
$can_manage = true;
$can_view = true;
$can_download = true;
$can_add = false;
} else {
$can_manage = false;
$can_view = true;
$can_download = true;
}
break;
case 'grouponly':
if ( bp_is_active( 'groups' ) ) {
$manage = groups_can_user_manage_media( $user_id, $album->group_id );
$status = bp_group_get_media_status( $album->group_id );
$is_admin = groups_is_user_admin( $user_id, $album->group_id );
$is_mod = groups_is_user_mod( $user_id, $album->group_id );
if ( $manage ) {
if ( $album->user_id === $user_id ) {
$can_manage = true;
$can_add = true;
} elseif ( bp_current_user_can( 'bp_moderate' ) ) {
$can_manage = true;
$can_add = false;
} elseif ( 'members' == $status && ( $is_mod || $is_admin ) ) {
$can_manage = true;
$can_add = false;
} elseif ( 'mods' == $status && ( $is_mod || $is_admin ) ) {
$can_manage = true;
$can_add = false;
} elseif ( 'admins' == $status && $is_admin ) {
$can_manage = true;
$can_add = false;
}
$can_view = true;
$can_download = true;
} else {
$the_group = groups_get_group( absint( $album->group_id ) );
if ( $the_group->id > 0 && $the_group->user_has_access ) {
$can_view = true;
$can_download = true;
}
}
}
break;
case 'loggedin':
if ( $album->user_id === $user_id ) {
$can_manage = true;
$can_add = true;
$can_view = true;
$can_download = true;
} elseif ( bp_current_user_can( 'bp_moderate' ) ) {
$can_manage = true;
$can_view = true;
$can_download = true;
$can_add = false;
} elseif ( bp_loggedin_user_id() === $user_id ) {
$can_manage = false;
$can_view = true;
$can_download = true;
}
break;
case 'friends':
$is_friend = ( bp_is_active( 'friends' ) ) ? friends_check_friendship( $album->user_id, $user_id ) : false;
if ( $album->user_id === $user_id ) {
$can_manage = true;
$can_add = true;
$can_view = true;
$can_download = true;
} elseif ( bp_current_user_can( 'bp_moderate' ) ) {
$can_manage = true;
$can_view = true;
$can_download = true;
$can_add = false;
} elseif ( $is_friend ) {
$can_manage = false;
$can_view = true;
$can_download = true;
}
break;
case 'onlyme':
if ( $album->user_id === $user_id ) {
$can_manage = true;
$can_add = true;
$can_view = true;
$can_download = true;
} elseif ( bp_current_user_can( 'bp_moderate' ) ) {
$can_manage = true;
$can_view = true;
$can_download = true;
$can_add = false;
}
break;
}
$data['can_manage'] = $can_manage;
$data['can_view'] = $can_view;
$data['can_download'] = $can_download;
$data['can_add'] = $can_add;
return apply_filters( 'bp_media_user_can_manage_album', $data, $album_id, $user_id );
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.4.7 | 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.