Skip to content
Snippets Groups Projects
Commit 4229a611 authored by catch's avatar catch
Browse files

Issue #3025785 by amateescu, mallezie, s_leu, smustgrave, tim.plunkett: Cannot...

Issue #3025785 by amateescu, mallezie, s_leu, smustgrave, tim.plunkett: Cannot create entity with image in a workspace
parent 63a2ba06
No related branches found
No related tags found
32 merge requests!12227Issue #3181946 by jonmcl, mglaman,!11131[10.4.x-only-DO-NOT-MERGE]: Issue ##2842525 Ajax attached to Views exposed filter form does not trigger callbacks,!9470[10.3.x-only-DO-NOT-MERGE]: #3331771 Fix file_get_contents(): Passing null to parameter,!8540Issue #3457061: Bootstrap Modal dialog Not closing after 10.3.0 Update,!8528Issue #3456871 by Tim Bozeman: Support NULL services,!8373Issue #3427374 by danflanagan8, Vighneshh: taxonomy_tid ViewsArgumentDefault...,!7526Expose roles in response,!7352Draft: Resolve #3203489 "Set filename as",!5423Draft: Resolve #3329907 "Test2",!3878Removed unused condition head title for views,!3818Issue #2140179: $entity->original gets stale between updates,!3742Issue #3328429: Create item list field formatter for displaying ordered and unordered lists,!3731Claro: role=button on status report items,!3651Issue #3347736: Create new SDC component for Olivero (header-search),!3531Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!3478Issue #3337882: Deleted menus are not removed from content type config,!3355Issue #3209129: Scrolling problems when adding a block via layout builder,!3154Fixes #2987987 - CSRF token validation broken on routes with optional parameters.,!3133core/modules/system/css/components/hidden.module.css,!2964Issue #2865710 : Dependencies from only one instance of a widget are used in display modes,!2812Issue #3312049: [Followup] Fix Drupal.Commenting.FunctionComment.MissingReturnType returns for NULL,!2794Issue #3100732: Allow specifying `meta` data on JSON:API objects,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2062Issue #3246454: Add weekly granularity to views date sort,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!877Issue #2708101: Default value for link text is not saved,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493,!213Issue #2906496: Give Media a menu item under Content
Pipeline #117348 canceled
Pipeline: drupal

#117350

    ......@@ -62,6 +62,12 @@ public function entityTypeBuild(array &$entity_types) {
    }
    }
    // The 'file' entity type is allowed to perform CRUD operations inside a
    // workspace without being tracked.
    if ($entity_type->id() === 'file') {
    $entity_type->setHandlerClass('workspace', IgnoredWorkspaceHandler::class);
    }
    // Internal entity types are allowed to perform CRUD operations inside a
    // workspace.
    if ($entity_type->isInternal()) {
    ......
    ......
    <?php
    /**
    * @file
    * Provides supporting code for testing workspaces.
    */
    /**
    * Implements hook_entity_type_alter().
    */
    function workspaces_test_entity_type_alter(array &$entity_types) {
    $state = \Drupal::state();
    // Allow all entity types to have their definition changed dynamically for
    // testing purposes.
    foreach ($entity_types as $entity_type_id => $entity_type) {
    $entity_types[$entity_type_id] = $state->get("$entity_type_id.entity_type", $entity_types[$entity_type_id]);
    }
    }
    ......@@ -2,6 +2,7 @@
    namespace Drupal\Tests\workspaces\Kernel;
    use Drupal\workspaces\Entity\Handler\IgnoredWorkspaceHandler;
    use Drupal\workspaces\Entity\Workspace;
    /**
    ......@@ -140,4 +141,17 @@ protected function getUnassociatedRevisions($entity_type_id, $entity_ids = NULL)
    return $query->execute();
    }
    /**
    * Marks an entity type as ignored in a workspace.
    *
    * @param string $entity_type_id
    * The entity type ID.
    */
    protected function ignoreEntityType(string $entity_type_id): void {
    $entity_type = clone \Drupal::entityTypeManager()->getDefinition($entity_type_id);
    $entity_type->setHandlerClass('workspace', IgnoredWorkspaceHandler::class);
    \Drupal::state()->set("$entity_type_id.entity_type", $entity_type);
    \Drupal::entityTypeManager()->clearCachedDefinitions();
    }
    }
    <?php
    declare(strict_types=1);
    namespace Drupal\Tests\workspaces\Kernel;
    use Drupal\Core\Entity\EntityTypeManagerInterface;
    use Drupal\Tests\file\Kernel\FileItemTest;
    use Drupal\Tests\user\Traits\UserCreationTrait;
    use Drupal\workspaces\Entity\Workspace;
    /**
    * Tests using entity fields of the file field type in a workspace.
    *
    * @group workspaces
    */
    class WorkspacesFileItemTest extends FileItemTest {
    use UserCreationTrait;
    use WorkspaceTestTrait;
    /**
    * The entity type manager.
    */
    protected EntityTypeManagerInterface $entityTypeManager;
    /**
    * {@inheritdoc}
    */
    protected static $modules = [
    'file',
    'path_alias',
    'workspaces',
    'workspaces_test',
    ];
    /**
    * {@inheritdoc}
    */
    protected function setUp(): void {
    parent::setUp();
    $this->entityTypeManager = \Drupal::entityTypeManager();
    $this->installEntitySchema('workspace');
    $this->installSchema('workspaces', ['workspace_association']);
    // Create a new workspace and activate it.
    Workspace::create(['id' => 'stage', 'label' => 'Stage'])->save();
    $this->switchToWorkspace('stage');
    }
    /**
    * {@inheritdoc}
    */
    public function testFileItem(): void {
    // Ignore entity types that are not being tested, in order to fully re-use
    // the parent test method.
    $this->ignoreEntityType('entity_test');
    $this->ignoreEntityType('entity_view_display');
    parent::testFileItem();
    }
    }
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please to comment