Skip to content

Commit

Permalink
Set content has no Group access control with 200
Browse files Browse the repository at this point in the history
  • Loading branch information
kylehuynh205 committed Jul 23, 2024
1 parent 65ac171 commit c848df5
Showing 1 changed file with 39 additions and 34 deletions.
73 changes: 39 additions & 34 deletions src/Plugin/search_api/processor/AccessControl.php
Original file line number Diff line number Diff line change
@@ -53,49 +53,54 @@ public function addFieldValues(ItemInterface $item) {
$entity = $item->getOriginalObject()->getValue();
$operation = "view";

/** @var \Drupal\group\Plugin\GroupContentEnablerManagerInterface $plugin_manager */
$plugin_manager = \Drupal::service('group_relation_type.manager');
if (\Drupal::hasService('group_relation_type.manager')) {
/** @var \Drupal\group\Plugin\GroupContentEnablerManagerInterface $plugin_manager */
$plugin_manager = \Drupal::service('group_relation_type.manager');

if (!method_exists($entity, "getEntityTypeId"))
return;

$plugin_ids = $plugin_manager->getPluginIdsByEntityTypeAccess($entity->getEntityTypeId());

$plugin_cache_tags = [];
foreach ($plugin_ids as $plugin_id) {
$plugin_cache_tags[] = "group_content_list:plugin:$plugin_id";
}
if (!method_exists($entity, "getEntityTypeId"))
return;

$plugin_ids = $plugin_manager->getPluginIdsByEntityTypeAccess($entity->getEntityTypeId());

// Load all of the group content for this entity.
$group_contents = GroupRelationship::loadByEntity($entity);
if (!empty($group_contents) && count($group_contents) > 0) {
$access = AccessResult::neutral();
$plugin_cache_tags = [];
foreach ($plugin_ids as $plugin_id) {
/*if (!$plugin_manager->hasHandler($plugin_id, 'access')) {
continue;
}*/

$handler = $plugin_manager->getAccessControlHandler($plugin_id);
$access = $access->orIf($handler->entityAccess($entity, $operation, User::getAnonymousUser(), TRUE));
$plugin_cache_tags[] = "group_content_list:plugin:$plugin_id";
}

$access
->addCacheTags($plugin_cache_tags)
->addCacheContexts(['user.group_permissions']);

if ($access->isAllowed()) {
// Load all of the group content for this entity.
$group_contents = GroupRelationship::loadByEntity($entity);
if (!empty($group_contents) && count($group_contents) > 0) {
$access = AccessResult::neutral();
foreach ($plugin_ids as $plugin_id) {
/*if (!$plugin_manager->hasHandler($plugin_id, 'access')) {
continue;
}*/

$handler = $plugin_manager->getAccessControlHandler($plugin_id);
$access = $access->orIf($handler->entityAccess($entity, $operation, User::getAnonymousUser(), TRUE));
}

$access
->addCacheTags($plugin_cache_tags)
->addCacheContexts(['user.group_permissions']);

if ($access->isAllowed()) {
$value = "200";
}
else {
$groups = Utilities::getGroupsByNode($entity->id());
sort($groups);
$value = implode(",", $groups);
}


}else {
$value = "200";
}
else {
$groups = Utilities::getGroupsByNode($entity->id());
sort($groups);
$value = implode(",", $groups);
}


}else {
} else {
$value = "200";
}

// index field
$fields = $item->getFields(FALSE);
$fields = $this->getFieldsHelper()

0 comments on commit c848df5

Please sign in to comment.