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();
}
