Example #1
0
 /**
  * Get a list of a user's groups, as well as those groups of which
  * the user is an admin or mod
  *
  * @since 1.2
  */
 protected function set_up_user_groups()
 {
     $groups = BP_Groups_Member::get_group_ids($this->user_id);
     $this->user_groups['groups'] = $groups['groups'];
     $admin_groups = BP_Groups_Member::get_is_admin_of($this->user_id);
     $mod_groups = BP_Groups_Member::get_is_mod_of($this->user_id);
     $this->user_groups['admin_mod_of'] = array_merge(wp_list_pluck($admin_groups['groups'], 'id'), wp_list_pluck($mod_groups['groups'], 'id'));
 }
 public function test_get_is_mod_of_with_filter()
 {
     $g1 = $this->factory->group->create(array('name' => 'RC Cola'));
     $g2 = $this->factory->group->create(array('name' => 'Pepsi'));
     $u = $this->factory->user->create();
     self::add_user_to_group($u, $g1);
     self::add_user_to_group($u, $g2);
     $m1 = new BP_Groups_Member($u, $g1);
     $m1->promote('mod');
     $m2 = new BP_Groups_Member($u, $g2);
     $m2->promote('mod');
     $groups = BP_Groups_Member::get_is_mod_of($u, false, false, 'eps');
     $ids = wp_list_pluck($groups['groups'], 'id');
     $this->assertEquals($ids, array($g2));
 }
/**
 * Checks upload permissions.
 * Adapted from Group Documents plugin.
 */
function bpfb_documents_allowed($group = false)
{
    if (!$group) {
        return false;
    }
    $user = wp_get_current_user();
    $moderator_of = BP_Groups_Member::get_is_admin_of($user->ID) + BP_Groups_Member::get_is_mod_of($user->ID);
    $moderator_of = is_array($moderator_of) && isset($moderator_of['groups']) ? $moderator_of['groups'] : false;
    $is_mod = false;
    foreach ($moderator_of as $gm) {
        if ($gm->id == $group->id) {
            $is_mod = true;
            break;
        }
    }
    switch (get_option('bp_group_documents_upload_permission')) {
        case 'mods_decide':
            switch (groups_get_groupmeta($group->id, 'group_documents_upload_permission')) {
                case 'mods_only':
                    if ($is_mod) {
                        return true;
                    }
                    break;
                case 'members':
                default:
                    if (bp_group_is_member($group)) {
                        return true;
                    }
                    break;
            }
            break;
        case 'mods_only':
            if ($is_mod) {
                return true;
            }
            break;
        case 'members':
        default:
            if (bp_group_is_member($group)) {
                return true;
            }
            break;
    }
    return false;
}
Example #4
0
function groups_get_user_is_mod_of($user_id = false, $pag_num = false, $pag_page = false, $filter = false)
{
    global $bp;
    if (!$user_id) {
        $user_id = $bp->displayed_user->id;
    }
    return BP_Groups_Member::get_is_mod_of($user_id, $pag_num, $pag_page, $filter);
}