activity_stream-1.0.x-dev/modules/activity_stream_group.module

modules/activity_stream_group.module
<?php

use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\group\Entity\GroupInterface;


/**
 * @file
 * Primary module hooks for Activity Stream Group module.
 */

function activity_stream_group_activity_stream_activity_access(EntityInterface $entity, $operation, AccountInterface $account) {
  
  $is_group_member = FALSE;

  if ($entity->hasField('field_activity_recipient_group') &&
      isset($entity->field_activity_recipient_group)
  ) {

    // Get the group
    $activity_recipient_group = $entity->field_activity_recipient_group->entity;
    if ($activity_recipient_group instanceof GroupInterface) {
      // Is the current user member in the activity group
      $is_group_member = \Drupal::service('group.membership_loader')->load(
        $activity_recipient_group,
        $account
      );
    }
  }

  switch ($operation) {

    case 'view': 
      
      if ($is_group_member) {
        return AccessResult::allowedIfHasPermissions($account, ['view own activity_stream_activity', 'administer activity_stream_activity'], 'OR');
      }

  }  
  
  // No opinion.
  return AccessResult::neutral();

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc