You are here

function social_group_flexible_group_can_view_flexible_groups in Open Social 8.8

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \social_group_flexible_group_can_view_flexible_groups()
  2. 8.6 modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \social_group_flexible_group_can_view_flexible_groups()
  3. 8.7 modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \social_group_flexible_group_can_view_flexible_groups()
  4. 10.3.x modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \social_group_flexible_group_can_view_flexible_groups()
  5. 10.0.x modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \social_group_flexible_group_can_view_flexible_groups()
  6. 10.1.x modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \social_group_flexible_group_can_view_flexible_groups()
  7. 10.2.x modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \social_group_flexible_group_can_view_flexible_groups()

Determine whether a user can see flexible groups as outsider.

Parameters

\Drupal\group\Entity\Group $group: The group we are checking.

\Drupal\Core\Session\AccountInterface $account: The user to check for.

Return value

bool Whether the user is allowed to view this flexible groups.

File

modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module, line 245
The Social Group Flexible Group module.

Code

function social_group_flexible_group_can_view_flexible_groups(Group $group, AccountInterface $account) : bool {

  // Users who can manage all can manage everything.
  if ($account
    ->hasPermission('manage all groups')) {
    return TRUE;
  }

  // If User is a member he can see it.
  if ($group
    ->getMember($account) !== FALSE) {
    return TRUE;
  }

  // Outsiders can only see groups that have
  // public / community enabled as visibility.
  if ($account
    ->isAuthenticated() && !social_group_flexible_group_community_enabled($group) && !social_group_flexible_group_public_enabled($group)) {
    return FALSE;
  }
  return TRUE;
}