You are here

function _entity_access_by_field_get_default_visibility in Open Social 8.8

Same name and namespace in other branches
  1. 8.9 modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  2. 8 modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  3. 8.2 modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  4. 8.3 modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  5. 8.4 modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  6. 8.5 modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  7. 8.6 modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  8. 8.7 modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  9. 10.3.x modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  10. 10.0.x modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  11. 10.1.x modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()
  12. 10.2.x modules/custom/entity_access_by_field/entity_access_by_field.module \_entity_access_by_field_get_default_visibility()

Returns default value for content visibility fields.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity object to prepare correct value.

Return value

string Default value of the field.

3 calls to _entity_access_by_field_get_default_visibility()
entity_access_by_field_field_widget_form_alter in modules/custom/entity_access_by_field/entity_access_by_field.module
Implements hook_field_widget_form_alter().
entity_access_by_field_node_presave in modules/custom/entity_access_by_field/entity_access_by_field.module
Implements hook_ENTITY_TYPE_presave().
entity_access_by_field_post_presave in modules/custom/entity_access_by_field/entity_access_by_field.module
Implements hook_ENTITY_TYPE_presave().

File

modules/custom/entity_access_by_field/entity_access_by_field.module, line 242
Entity Access By Field module file.

Code

function _entity_access_by_field_get_default_visibility(EntityInterface $entity) {
  $default_visibility =& drupal_static(__FUNCTION__ . '_' . $entity
    ->getEntityTypeId());
  if ($default_visibility) {
    return $default_visibility;
  }
  $config = \Drupal::config('entity_access_by_field.settings');
  switch ($entity
    ->getEntityTypeId()) {
    case 'node':
      $account = $entity
        ->get('uid')->entity;
      $default_visibility = $config
        ->get('default_visibility');
      break;
    case 'post':
      $account = $entity
        ->get('user_id')->entity;
      $post_visibility = [
        'public' => '1',
        'community' => '2',
      ];
      $default_visibility = $post_visibility[$config
        ->get('default_visibility')];
      break;
    default:
      return $default_visibility;
  }
  if ($config
    ->get('disable_public_visibility') === 1 && !$account
    ->hasPermission('override disabled public visibility')) {
    switch ($entity
      ->getEntityTypeId()) {
      case 'node':
        if ($default_visibility === 'public') {
          $default_visibility = 'community';
        }
        break;
      case 'post':
        if ($default_visibility === '1') {
          $default_visibility = '2';
        }
        break;
    }
  }
  return $default_visibility;
}