From 5afbeb956bef19e0ce4a9e154731dd4607f6603f Mon Sep 17 00:00:00 2001 From: naomi Date: Mon, 8 Feb 2021 17:27:18 +0000 Subject: [PATCH] Moved everything relating to cases into opencase_cases module --- .../config/schema/oc_case_type.schema.yml | 0 .../oc_case.page.inc | 0 .../opencase_cases.links.action.yml | 12 +++++ .../opencase_cases.links.menu.yml | 18 +++++++ .../opencase_cases.links.task.yml | 23 ++++++++ modules/opencase_cases/opencase_cases.module | 53 +++++++++++++++++++ .../src/CaseInvolvement.php | 0 .../src/Controller/OCCaseController.php | 0 .../src/Entity/OCCase.php | 0 .../src/Entity/OCCaseInterface.php | 0 .../src/Entity/OCCaseType.php | 0 .../src/Entity/OCCaseTypeInterface.php | 0 .../src/Entity/OCCaseViewsData.php | 0 .../src/Form/OCCaseDeleteForm.php | 0 .../src/Form/OCCaseForm.php | 0 .../src/Form/OCCaseRevisionDeleteForm.php | 0 .../src/Form/OCCaseRevisionRevertForm.php | 0 .../OCCaseRevisionRevertTranslationForm.php | 0 .../src/Form/OCCaseSettingsForm.php | 0 .../src/Form/OCCaseTypeDeleteForm.php | 0 .../src/Form/OCCaseTypeForm.php | 0 .../src/OCCaseAccessControlHandler.php | 0 .../src/OCCaseHtmlRouteProvider.php | 0 .../src/OCCaseListBuilder.php | 0 .../src/OCCaseStorage.php | 0 .../src/OCCaseStorageInterface.php | 0 .../src/OCCaseTranslationHandler.php | 0 .../src/OCCaseTypeAccessControlHandler.php | 0 .../src/OCCaseTypeHtmlRouteProvider.php | 0 .../src/OCCaseTypeListBuilder.php | 0 .../src/OpenCaseEntityPermissions.php | 0 .../oc-case-content-add-list.html.twig | 0 .../templates/oc_case.html.twig | 0 .../opencase_default_reporting.info.yml | 1 + .../opencase_entities.links.action.yml | 11 ---- .../opencase_entities.links.menu.yml | 18 ------- .../opencase_entities.links.task.yml | 22 -------- .../opencase_entities.module | 52 ------------------ 38 files changed, 107 insertions(+), 103 deletions(-) rename modules/{opencase_entities => opencase_cases}/config/schema/oc_case_type.schema.yml (100%) rename modules/{opencase_entities => opencase_cases}/oc_case.page.inc (100%) create mode 100644 modules/opencase_cases/opencase_cases.links.action.yml create mode 100644 modules/opencase_cases/opencase_cases.links.task.yml rename modules/{opencase_entities => opencase_cases}/src/CaseInvolvement.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Controller/OCCaseController.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Entity/OCCase.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Entity/OCCaseInterface.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Entity/OCCaseType.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Entity/OCCaseTypeInterface.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Entity/OCCaseViewsData.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Form/OCCaseDeleteForm.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Form/OCCaseForm.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Form/OCCaseRevisionDeleteForm.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Form/OCCaseRevisionRevertForm.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Form/OCCaseRevisionRevertTranslationForm.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Form/OCCaseSettingsForm.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Form/OCCaseTypeDeleteForm.php (100%) rename modules/{opencase_entities => opencase_cases}/src/Form/OCCaseTypeForm.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseAccessControlHandler.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseHtmlRouteProvider.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseListBuilder.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseStorage.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseStorageInterface.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseTranslationHandler.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseTypeAccessControlHandler.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseTypeHtmlRouteProvider.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OCCaseTypeListBuilder.php (100%) rename modules/{opencase_entities => opencase_cases}/src/OpenCaseEntityPermissions.php (100%) rename modules/{opencase_entities => opencase_cases}/templates/oc-case-content-add-list.html.twig (100%) rename modules/{opencase_entities => opencase_cases}/templates/oc_case.html.twig (100%) diff --git a/modules/opencase_entities/config/schema/oc_case_type.schema.yml b/modules/opencase_cases/config/schema/oc_case_type.schema.yml similarity index 100% rename from modules/opencase_entities/config/schema/oc_case_type.schema.yml rename to modules/opencase_cases/config/schema/oc_case_type.schema.yml diff --git a/modules/opencase_entities/oc_case.page.inc b/modules/opencase_cases/oc_case.page.inc similarity index 100% rename from modules/opencase_entities/oc_case.page.inc rename to modules/opencase_cases/oc_case.page.inc diff --git a/modules/opencase_cases/opencase_cases.links.action.yml b/modules/opencase_cases/opencase_cases.links.action.yml new file mode 100644 index 0000000..70abb9c --- /dev/null +++ b/modules/opencase_cases/opencase_cases.links.action.yml @@ -0,0 +1,12 @@ + +entity.oc_case.add_form: + route_name: entity.oc_case.add_page + title: 'Add Case' + appears_on: + - entity.oc_case.collection +entity.oc_case_type.add_form: + route_name: entity.oc_case_type.add_form + title: 'Add Case type' + appears_on: + - entity.oc_case_type.collection + diff --git a/modules/opencase_cases/opencase_cases.links.menu.yml b/modules/opencase_cases/opencase_cases.links.menu.yml index 98d35e3..3d390f0 100644 --- a/modules/opencase_cases/opencase_cases.links.menu.yml +++ b/modules/opencase_cases/opencase_cases.links.menu.yml @@ -5,3 +5,21 @@ opencase_cases.manage_case_types: parent: opencase.opencase_admin_menu url: internal:/admin/opencase/oc_case_type weight: 2 +# Case menu items definition +entity.oc_case.collection: + title: 'Case list' + route_name: entity.oc_case.collection + description: 'List Case entities' + parent: system.admin_structure + weight: 100 + + +# Case type menu items definition +entity.oc_case_type.collection: + title: 'Case type' + route_name: entity.oc_case_type.collection + description: 'List Case type (bundles)' + parent: system.admin_structure + weight: 99 + + diff --git a/modules/opencase_cases/opencase_cases.links.task.yml b/modules/opencase_cases/opencase_cases.links.task.yml new file mode 100644 index 0000000..a729159 --- /dev/null +++ b/modules/opencase_cases/opencase_cases.links.task.yml @@ -0,0 +1,23 @@ + +# Case routing definition + +entity.oc_case.canonical: + route_name: entity.oc_case.canonical + base_route: entity.oc_case.canonical + title: 'View' + +entity.oc_case.edit_form: + route_name: entity.oc_case.edit_form + base_route: entity.oc_case.canonical + title: 'Edit' + +entity.oc_case.version_history: + route_name: entity.oc_case.version_history + base_route: entity.oc_case.canonical + title: 'Revisions' + +entity.oc_case.delete_form: + route_name: entity.oc_case.delete_form + base_route: entity.oc_case.canonical + title: Delete + weight: 10 diff --git a/modules/opencase_cases/opencase_cases.module b/modules/opencase_cases/opencase_cases.module index 79cf4b3..8994127 100644 --- a/modules/opencase_cases/opencase_cases.module +++ b/modules/opencase_cases/opencase_cases.module @@ -31,6 +31,17 @@ function opencase_cases_theme() { 'opencase_cases' => [ 'render element' => 'children', ], + 'oc_case' => [ + 'render element' => 'elements', + 'file' => 'oc_case.page.inc', + 'template' => 'oc_case', + ] + 'oc_case_content_add_list' => [ + 'render element' => 'content', + 'variables' => ['content' => NULL], + 'file' => 'oc_case.page.inc', + ] + ]; ]; } @@ -85,3 +96,45 @@ function _opencase_cases_delete_activity_redirect($form, &$form_state) { $case_id = $form_state->getFormObject()->getEntity()->oc_case->target_id; $form_state->setRedirect('entity.oc_case.canonical', ['oc_case' => $case_id]); } +/** +* Implements hook_theme_suggestions_HOOK(). +*/ +function opencase_cases_theme_suggestions_oc_case(array $variables) { + $suggestions = []; + $entity = $variables['elements']['#oc_case']; + $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_'); + + $suggestions[] = 'oc_case__' . $sanitized_view_mode; + $suggestions[] = 'oc_case__' . $entity->bundle(); + $suggestions[] = 'oc_case__' . $entity->bundle() . '__' . $sanitized_view_mode; + $suggestions[] = 'oc_case__' . $entity->id(); + $suggestions[] = 'oc_case__' . $entity->id() . '__' . $sanitized_view_mode; + return $suggestions; +} + +function opencase_views_query_alter(Drupal\views\ViewExecutable $view, $query) { + if ($view->getBaseEntityType() && $view->getBaseEntityType()->id() == 'oc_case') { + $query->addTag('oc_case_access'); + } + if ($view->getBaseEntityType() && $view->getBaseEntityType()->id() == 'oc_activity') { + $query->addTag('oc_activity_access'); + } +} + +function opencase_query_oc_case_access_alter($query) { + if (\Drupal::currentUser()->hasPermission('view published case entities')) { + return; + } + $linked_actor_id = CaseInvolvement::getLinkedActorId(\Drupal::currentUser()); + $query->addJoin('INNER', 'oc_case__actors_involved', 'access_filter', 'access_filter.entity_id = oc_case_field_data.id'); + $query->condition('access_filter.actors_involved_target_id', $linked_actor_id); +} + +function opencase_query_oc_activity_access_alter($query) { + if (\Drupal::currentUser()->hasPermission('view published case entities')) { + return; + } + $linked_actor_id = CaseInvolvement::getLinkedActorId(\Drupal::currentUser()); + $query->addJoin('INNER', 'oc_case__actors_involved', 'access_filter', 'access_filter.entity_id = oc_activity_field_data.oc_case'); + $query->condition('access_filter.actors_involved_target_id', $linked_actor_id); +} diff --git a/modules/opencase_entities/src/CaseInvolvement.php b/modules/opencase_cases/src/CaseInvolvement.php similarity index 100% rename from modules/opencase_entities/src/CaseInvolvement.php rename to modules/opencase_cases/src/CaseInvolvement.php diff --git a/modules/opencase_entities/src/Controller/OCCaseController.php b/modules/opencase_cases/src/Controller/OCCaseController.php similarity index 100% rename from modules/opencase_entities/src/Controller/OCCaseController.php rename to modules/opencase_cases/src/Controller/OCCaseController.php diff --git a/modules/opencase_entities/src/Entity/OCCase.php b/modules/opencase_cases/src/Entity/OCCase.php similarity index 100% rename from modules/opencase_entities/src/Entity/OCCase.php rename to modules/opencase_cases/src/Entity/OCCase.php diff --git a/modules/opencase_entities/src/Entity/OCCaseInterface.php b/modules/opencase_cases/src/Entity/OCCaseInterface.php similarity index 100% rename from modules/opencase_entities/src/Entity/OCCaseInterface.php rename to modules/opencase_cases/src/Entity/OCCaseInterface.php diff --git a/modules/opencase_entities/src/Entity/OCCaseType.php b/modules/opencase_cases/src/Entity/OCCaseType.php similarity index 100% rename from modules/opencase_entities/src/Entity/OCCaseType.php rename to modules/opencase_cases/src/Entity/OCCaseType.php diff --git a/modules/opencase_entities/src/Entity/OCCaseTypeInterface.php b/modules/opencase_cases/src/Entity/OCCaseTypeInterface.php similarity index 100% rename from modules/opencase_entities/src/Entity/OCCaseTypeInterface.php rename to modules/opencase_cases/src/Entity/OCCaseTypeInterface.php diff --git a/modules/opencase_entities/src/Entity/OCCaseViewsData.php b/modules/opencase_cases/src/Entity/OCCaseViewsData.php similarity index 100% rename from modules/opencase_entities/src/Entity/OCCaseViewsData.php rename to modules/opencase_cases/src/Entity/OCCaseViewsData.php diff --git a/modules/opencase_entities/src/Form/OCCaseDeleteForm.php b/modules/opencase_cases/src/Form/OCCaseDeleteForm.php similarity index 100% rename from modules/opencase_entities/src/Form/OCCaseDeleteForm.php rename to modules/opencase_cases/src/Form/OCCaseDeleteForm.php diff --git a/modules/opencase_entities/src/Form/OCCaseForm.php b/modules/opencase_cases/src/Form/OCCaseForm.php similarity index 100% rename from modules/opencase_entities/src/Form/OCCaseForm.php rename to modules/opencase_cases/src/Form/OCCaseForm.php diff --git a/modules/opencase_entities/src/Form/OCCaseRevisionDeleteForm.php b/modules/opencase_cases/src/Form/OCCaseRevisionDeleteForm.php similarity index 100% rename from modules/opencase_entities/src/Form/OCCaseRevisionDeleteForm.php rename to modules/opencase_cases/src/Form/OCCaseRevisionDeleteForm.php diff --git a/modules/opencase_entities/src/Form/OCCaseRevisionRevertForm.php b/modules/opencase_cases/src/Form/OCCaseRevisionRevertForm.php similarity index 100% rename from modules/opencase_entities/src/Form/OCCaseRevisionRevertForm.php rename to modules/opencase_cases/src/Form/OCCaseRevisionRevertForm.php diff --git a/modules/opencase_entities/src/Form/OCCaseRevisionRevertTranslationForm.php b/modules/opencase_cases/src/Form/OCCaseRevisionRevertTranslationForm.php similarity index 100% rename from modules/opencase_entities/src/Form/OCCaseRevisionRevertTranslationForm.php rename to modules/opencase_cases/src/Form/OCCaseRevisionRevertTranslationForm.php diff --git a/modules/opencase_entities/src/Form/OCCaseSettingsForm.php b/modules/opencase_cases/src/Form/OCCaseSettingsForm.php similarity index 100% rename from modules/opencase_entities/src/Form/OCCaseSettingsForm.php rename to modules/opencase_cases/src/Form/OCCaseSettingsForm.php diff --git a/modules/opencase_entities/src/Form/OCCaseTypeDeleteForm.php b/modules/opencase_cases/src/Form/OCCaseTypeDeleteForm.php similarity index 100% rename from modules/opencase_entities/src/Form/OCCaseTypeDeleteForm.php rename to modules/opencase_cases/src/Form/OCCaseTypeDeleteForm.php diff --git a/modules/opencase_entities/src/Form/OCCaseTypeForm.php b/modules/opencase_cases/src/Form/OCCaseTypeForm.php similarity index 100% rename from modules/opencase_entities/src/Form/OCCaseTypeForm.php rename to modules/opencase_cases/src/Form/OCCaseTypeForm.php diff --git a/modules/opencase_entities/src/OCCaseAccessControlHandler.php b/modules/opencase_cases/src/OCCaseAccessControlHandler.php similarity index 100% rename from modules/opencase_entities/src/OCCaseAccessControlHandler.php rename to modules/opencase_cases/src/OCCaseAccessControlHandler.php diff --git a/modules/opencase_entities/src/OCCaseHtmlRouteProvider.php b/modules/opencase_cases/src/OCCaseHtmlRouteProvider.php similarity index 100% rename from modules/opencase_entities/src/OCCaseHtmlRouteProvider.php rename to modules/opencase_cases/src/OCCaseHtmlRouteProvider.php diff --git a/modules/opencase_entities/src/OCCaseListBuilder.php b/modules/opencase_cases/src/OCCaseListBuilder.php similarity index 100% rename from modules/opencase_entities/src/OCCaseListBuilder.php rename to modules/opencase_cases/src/OCCaseListBuilder.php diff --git a/modules/opencase_entities/src/OCCaseStorage.php b/modules/opencase_cases/src/OCCaseStorage.php similarity index 100% rename from modules/opencase_entities/src/OCCaseStorage.php rename to modules/opencase_cases/src/OCCaseStorage.php diff --git a/modules/opencase_entities/src/OCCaseStorageInterface.php b/modules/opencase_cases/src/OCCaseStorageInterface.php similarity index 100% rename from modules/opencase_entities/src/OCCaseStorageInterface.php rename to modules/opencase_cases/src/OCCaseStorageInterface.php diff --git a/modules/opencase_entities/src/OCCaseTranslationHandler.php b/modules/opencase_cases/src/OCCaseTranslationHandler.php similarity index 100% rename from modules/opencase_entities/src/OCCaseTranslationHandler.php rename to modules/opencase_cases/src/OCCaseTranslationHandler.php diff --git a/modules/opencase_entities/src/OCCaseTypeAccessControlHandler.php b/modules/opencase_cases/src/OCCaseTypeAccessControlHandler.php similarity index 100% rename from modules/opencase_entities/src/OCCaseTypeAccessControlHandler.php rename to modules/opencase_cases/src/OCCaseTypeAccessControlHandler.php diff --git a/modules/opencase_entities/src/OCCaseTypeHtmlRouteProvider.php b/modules/opencase_cases/src/OCCaseTypeHtmlRouteProvider.php similarity index 100% rename from modules/opencase_entities/src/OCCaseTypeHtmlRouteProvider.php rename to modules/opencase_cases/src/OCCaseTypeHtmlRouteProvider.php diff --git a/modules/opencase_entities/src/OCCaseTypeListBuilder.php b/modules/opencase_cases/src/OCCaseTypeListBuilder.php similarity index 100% rename from modules/opencase_entities/src/OCCaseTypeListBuilder.php rename to modules/opencase_cases/src/OCCaseTypeListBuilder.php diff --git a/modules/opencase_entities/src/OpenCaseEntityPermissions.php b/modules/opencase_cases/src/OpenCaseEntityPermissions.php similarity index 100% rename from modules/opencase_entities/src/OpenCaseEntityPermissions.php rename to modules/opencase_cases/src/OpenCaseEntityPermissions.php diff --git a/modules/opencase_entities/templates/oc-case-content-add-list.html.twig b/modules/opencase_cases/templates/oc-case-content-add-list.html.twig similarity index 100% rename from modules/opencase_entities/templates/oc-case-content-add-list.html.twig rename to modules/opencase_cases/templates/oc-case-content-add-list.html.twig diff --git a/modules/opencase_entities/templates/oc_case.html.twig b/modules/opencase_cases/templates/oc_case.html.twig similarity index 100% rename from modules/opencase_entities/templates/oc_case.html.twig rename to modules/opencase_cases/templates/oc_case.html.twig diff --git a/modules/opencase_default_reporting/opencase_default_reporting.info.yml b/modules/opencase_default_reporting/opencase_default_reporting.info.yml index 27d66a6..dd49406 100644 --- a/modules/opencase_default_reporting/opencase_default_reporting.info.yml +++ b/modules/opencase_default_reporting/opencase_default_reporting.info.yml @@ -6,3 +6,4 @@ package: 'OpenCase' dependencies: - opencase_defaults - opencase_reporting + - opencase_cases diff --git a/modules/opencase_entities/opencase_entities.links.action.yml b/modules/opencase_entities/opencase_entities.links.action.yml index 10845a3..92dd196 100644 --- a/modules/opencase_entities/opencase_entities.links.action.yml +++ b/modules/opencase_entities/opencase_entities.links.action.yml @@ -9,17 +9,6 @@ entity.oc_actor_type.add_form: appears_on: - entity.oc_actor_type.collection -entity.oc_case.add_form: - route_name: entity.oc_case.add_page - title: 'Add Case' - appears_on: - - entity.oc_case.collection -entity.oc_case_type.add_form: - route_name: entity.oc_case_type.add_form - title: 'Add Case type' - appears_on: - - entity.oc_case_type.collection - entity.oc_activity.add_form: route_name: entity.oc_activity.add_page title: 'Add Activity' diff --git a/modules/opencase_entities/opencase_entities.links.menu.yml b/modules/opencase_entities/opencase_entities.links.menu.yml index c9c655b..c91ae78 100644 --- a/modules/opencase_entities/opencase_entities.links.menu.yml +++ b/modules/opencase_entities/opencase_entities.links.menu.yml @@ -17,24 +17,6 @@ entity.oc_actor_type.collection: weight: 99 -# Case menu items definition -entity.oc_case.collection: - title: 'Case list' - route_name: entity.oc_case.collection - description: 'List Case entities' - parent: system.admin_structure - weight: 100 - - -# Case type menu items definition -entity.oc_case_type.collection: - title: 'Case type' - route_name: entity.oc_case_type.collection - description: 'List Case type (bundles)' - parent: system.admin_structure - weight: 99 - - # Activity menu items definition entity.oc_activity.collection: title: 'Activity list' diff --git a/modules/opencase_entities/opencase_entities.links.task.yml b/modules/opencase_entities/opencase_entities.links.task.yml index 5158019..880230f 100644 --- a/modules/opencase_entities/opencase_entities.links.task.yml +++ b/modules/opencase_entities/opencase_entities.links.task.yml @@ -21,28 +21,6 @@ entity.oc_actor.delete_form: title: Delete weight: 10 -# Case routing definition - -entity.oc_case.canonical: - route_name: entity.oc_case.canonical - base_route: entity.oc_case.canonical - title: 'View' - -entity.oc_case.edit_form: - route_name: entity.oc_case.edit_form - base_route: entity.oc_case.canonical - title: 'Edit' - -entity.oc_case.version_history: - route_name: entity.oc_case.version_history - base_route: entity.oc_case.canonical - title: 'Revisions' - -entity.oc_case.delete_form: - route_name: entity.oc_case.delete_form - base_route: entity.oc_case.canonical - title: Delete - weight: 10 # Activity routing definition diff --git a/modules/opencase_entities/opencase_entities.module b/modules/opencase_entities/opencase_entities.module index de31340..4f68e6f 100644 --- a/modules/opencase_entities/opencase_entities.module +++ b/modules/opencase_entities/opencase_entities.module @@ -42,16 +42,6 @@ function opencase_entities_theme() { 'variables' => ['content' => NULL], 'file' => 'oc_actor.page.inc', ]; - $theme['oc_case'] = [ - 'render element' => 'elements', - 'file' => 'oc_case.page.inc', - 'template' => 'oc_case', - ]; - $theme['oc_case_content_add_list'] = [ - 'render element' => 'content', - 'variables' => ['content' => NULL], - 'file' => 'oc_case.page.inc', - ]; $theme['oc_activity'] = [ 'render element' => 'elements', 'file' => 'oc_activity.page.inc', @@ -101,22 +91,6 @@ function opencase_entities_theme_suggestions_oc_actor(array $variables) { return $suggestions; } -/** -* Implements hook_theme_suggestions_HOOK(). -*/ -function opencase_entities_theme_suggestions_oc_case(array $variables) { - $suggestions = []; - $entity = $variables['elements']['#oc_case']; - $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_'); - - $suggestions[] = 'oc_case__' . $sanitized_view_mode; - $suggestions[] = 'oc_case__' . $entity->bundle(); - $suggestions[] = 'oc_case__' . $entity->bundle() . '__' . $sanitized_view_mode; - $suggestions[] = 'oc_case__' . $entity->id(); - $suggestions[] = 'oc_case__' . $entity->id() . '__' . $sanitized_view_mode; - return $suggestions; -} - /** * Implements hook_theme_suggestions_HOOK(). */ @@ -133,32 +107,6 @@ function opencase_entities_theme_suggestions_oc_activity(array $variables) { return $suggestions; } -function opencase_views_query_alter(Drupal\views\ViewExecutable $view, $query) { - if ($view->getBaseEntityType() && $view->getBaseEntityType()->id() == 'oc_case') { - $query->addTag('oc_case_access'); - } - if ($view->getBaseEntityType() && $view->getBaseEntityType()->id() == 'oc_activity') { - $query->addTag('oc_activity_access'); - } -} - -function opencase_query_oc_case_access_alter($query) { - if (\Drupal::currentUser()->hasPermission('view published case entities')) { - return; - } - $linked_actor_id = CaseInvolvement::getLinkedActorId(\Drupal::currentUser()); - $query->addJoin('INNER', 'oc_case__actors_involved', 'access_filter', 'access_filter.entity_id = oc_case_field_data.id'); - $query->condition('access_filter.actors_involved_target_id', $linked_actor_id); -} - -function opencase_query_oc_activity_access_alter($query) { - if (\Drupal::currentUser()->hasPermission('view published case entities')) { - return; - } - $linked_actor_id = CaseInvolvement::getLinkedActorId(\Drupal::currentUser()); - $query->addJoin('INNER', 'oc_case__actors_involved', 'access_filter', 'access_filter.entity_id = oc_activity_field_data.oc_case'); - $query->condition('access_filter.actors_involved_target_id', $linked_actor_id); -} /** * Implements hook_theme_suggestions_HOOK().