Problem/Motivation

Drupal's private file access handling will grant access to the file to whoever has access to the entity where the field is attached. This means that a node with a file field will keep access to the node and the file in sync (granting access to the file if the user has access to the node, etc).

This is still true when using files attached to media entities, in the sense that Drupal will by default grant access to the file to users that can access the media entity. However, users may have the expectation that access is also inherited from the entity referencing the media items, which doesn't happen.

This could lead to a potentially misconfigured site, where users could think their assets are protected but they end up being exposed publicly. This mismatch in expectation has been brought up in several issues recently, such as:
#2904842: Make private file access handling respect the full entity reference chain
#2937642: Access to files attached via media entities should be ultimately controlled by the published state of related content
#2981131: Media Entity Pages Anonymous Permission
#2980424: "View media" grants permission on all private media files (no host entity check?)

While the real fix is being discussed in #2904842: Make private file access handling respect the full entity reference chain, this issue aims at reducing the confusion and making it explicit that Drupal does not do that out-of-the box, when using media entities instead of direct file fields.

Steps to reproduce:

Reference scenario (nodes with fields):

1) In a clean install, add a file field to a content type
2) When asked to configure the field storage, select "Private"
3) Create a node as unpublished, uploading a file to that field
4) As an anonymous user, try to reach directly the file URL

Result: Anonymous users do not have direct access to the file, if the node is unpublished.

"Problematic scenario" (nodes with media):

1) In a clean install with the Media module enabled, configure the "File" field on the "File" media type to use the "Private" file storage scheme
2) Add a media field (entity_reference) to a content type, allowing users to reference the "File" media type
3) Create a node as unpublished, uploading a file to that field
4) As an anonymous user, try to reach directly the file URL

Result: Anonymous users have direct access to the file, even though the node is unpublished.

Proposed resolution

Action 1:
Show some messages to the site builder to make that situation clear:

- When configuring a media source field to use the private filesystem

Field UI alert message.

- When checking messages at the status report page

Status report message

- In hook help text

Hook help message.

Action 2:
Add some more detailed information about media access handling and possible misconfiguration scenarios in drupal.org documentation
- Created https://www.drupal.org/docs/8/core/modules/media/setting-up-private-acce... for that

Remaining tasks

- Review patch / Address feedback
- Complete documentation on https://www.drupal.org/docs/8/core/modules/media/setting-up-private-acce...
- Collect sign-off
- Commit

User interface changes

- New message(s) will appear to site builders in some contexts (see screenshots above)

API changes

None.

Data model changes

None.

Issue fork drupal-2984093

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

marcoscano created an issue. See original summary.

marcoscano’s picture

Status: Active » Needs review
Issue tags: +Needs usability review
StatusFileSize
new5.24 KB

This is a re-upload of the patch in #2904842-20: Make private file access handling respect the full entity reference chain. Also moving over the comments from there:

- Created a placeholder documentation page for this at https://www.drupal.org/docs/8/core/modules/media/setting-up-private-acce... , we still need to figure out what to explain there, point to contrib solutions, etc.
- The warning is shown in both the status page and in the manage fields page, as shown in the screenshots below
- Devs can disable the warning with drush by executing drush cset media.settings show_private_scheme_warning 0, and re-enable it back the same way by setting the flag to 1
- Final wording might still need some tweaking
- We still need tests for this, but I was hoping to get a 👍 or 👎 on the approach before writing them

Warning on the fields page:

Warning on the status page:

marcoscano’s picture

Issue summary: View changes
Issue tags: +Needs tests
xjm’s picture

Status: Needs review » Needs work
Issue tags: +needs documentation updates
Related issues: +#2877128: [META] Evaluate status report warnings and determine which should be reduced to info, removed, etc.

I think that it makes a lot of sense to inform/warn users about this, because the mismatch in expectations can lead to unintended disclosures (even though the behavior is by design).

A couple thoughts about the current approach:

  1. We need to be careful with status report warnings because they can lead the site owner to think something is malfunctioning even when it's working as designed and there's no actionable step to take, which is problematic for usability reasons. In general, we're actually trying to reduce the number of status report warnings we have. (See #2877128: [META] Evaluate status report warnings and determine which should be reduced to info, removed, etc. for more information on all that.) An info message might be more appropriate for the status report.
     
  2. Having the message on Manage fields is definitely a good idea, but I think we might want it to be just hook_help() text added to that route rather than a warning.
     
  3. I think it'd also be a good idea to provide a list or audit of where the media type is referenced.
     
  4. Possibly (as a followup) there could be a filter or display for the Media view/Media Library that actually allows the site owner to look over private file media items themselves and to verify their access restrictions, so that the site owner can fix misconfigured media in response to the message.
     
  5. The message wording is very Drupally and probably hard for many site builders to understand. A first draft at improving it:

    Media type File uses the private file storage and can be used on the following content:

    • Content types: Article, Recipe
    • Taxonomy vocabularies: Food

    By default, the media items will be accessible to any users with access to File media, even if the user does not have access to content that references it. More information on configuring media access restrictions.

    Note that I didn't say "Media type(s)"; we should probably use formatPlural() for that for better translation support.
     

  6. I think it might be better to inform the user in the context in which they are actually adding the Media. E.g., the media add form, the node form, or especially the media library widget once that's added. Otherwise, the information is disconnected from the place that's affected, and content authors or site builders who need to know the information might not ever see it.
     
  7. I think we should also have a section in hook_help() about this, possibly just a short section that links the proposed handbook page. (Also let's at least get minimal content on that page before we commit this, since Media is stable and so it's covered by the docs gate.)
     
  8. I can see the case for the developer-only configuration option about the warning to mitigate things like my points 1 and 2 above, but ideally we'll come up with a solution that someone doesn't need to turn off. :) Note for other reviewers: the patch does not expose said configuration option in the UI (and should not).
     

Thanks! I think this is a really good step to straightening out the tangle of access expectations about Media.

marcoscano’s picture

StatusFileSize
new6.79 KB
new6.28 KB
new125.91 KB
new76.09 KB
new43.46 KB

@xjm many thanks! That's very useful feedback!

1- Fixed, moved it to an info message

2- Fixed, although I have thoughts on this one. Some part of me tells me that the "normal text" will pass unnoticed, while the warning draws the attention of the site builder.

3 and 4- This is the tricky part. There could be a complex chain of relationships of usages, or even entities that are not being used anywhere, but could be used in the future, so identifying "what is affected by this" may become a complex process without a system that tracks entity relationships in Drupal natively (and which is part of the reason the fix is not in place in the first place...)

5- Tweaked the message a bit. Didn't add the entities that reference the media type because again, there could be several layers of relationships, and for example having a paragraph or a custom entity component exposed on this list may not always make sense for the site builder. But in this case it is not so hard to build up a list, if you think we should have it here, we can.

6- I'm not sure about this... Ideally, our warnings are clear enough for the site builder / developer that they will fix the issue during the development cycle, so end users (editors) would never need to be bothered by this. Even if they did, in most cases the editors do not have the means to solving the issue? (changing field storage, installing modules, etc)

7- Added a short section to the help. Any suggestion about what the documentation page should look like? Technically we "don't have" a solution, so I wonder what the best message is to have there at this point. I did start to play around possible solutions in a contrib module, but from there to have it as "the" recommended approach, I believe there's a good distance... Anything we could recommend apart from "you need to figure out a solution yourself" ?

8- 👍

This is what this round of adjustments look like:

On the field UI page:

On the status report:

On the hep page:

(Still needs tests so I'm not moving the issue status, but I hope we could be able to move forward with the discussion without them at this point)

Thanks again!

marcoscano’s picture

Issue tags: -Needs usability review

This was discussed in the UX meeting today ( video ), the summary is:

  • +1 for the general direction and message locations
  • -1 for having a developer-only way of turning the message off. We should either: 1) Find an existing issue in core that calls for the need of a "Dismiss API" or similar, to have this mechanism generically available in core, or 2) Make the text generic enough that it doesn't hurt if it's always there, even if sites have solved the issue by themselves
marcoscano’s picture

Issue tags: +Needs usability review

Well, the final wording would still probably need UX sign-off, so I guess it's better just to leave the tag for now.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

phenaproxima’s picture

  1. +++ b/core/modules/media/config/install/media.settings.yml
    @@ -1,3 +1,4 @@
    +show_private_scheme_warning: TRUE
    

    TRUE should be lowercase true. Also, can we rename this to show_private_file_warning? 'scheme' is a weird word in this context.

  2. +++ b/core/modules/media/config/schema/media.schema.yml
    @@ -11,6 +11,9 @@ media.settings:
    +      label: 'Whether the site should show a warning on the UI when the source field is configured to use the private scheme'
    

    Can we adjust this: "...is configured to use private file storage"?

  3. +++ b/core/modules/media/media.install
    @@ -107,6 +107,35 @@ function media_requirements($phase) {
    +      $types_to_warn = [];
    +      foreach ($media_types as $type) {
    +        $source_definition = $type->getSource()->getSourceFieldDefinition($type);
    +        if (!in_array($source_definition->getType(), ['file', 'image'])) {
    +          continue;
    +        }
    +        if ($source_definition->getSetting('uri_scheme') === 'private') {
    +          $types_to_warn[$type->id()] = $type->label();
    +        }
    +      }
    

    This seems like a good place to use array_filter(). Additionally, I think it'd be better to check if the source field item list is, or extends, FileFieldItemList rather than rely on a field type ID.

  4. +++ b/core/modules/media/media.module
    @@ -58,7 +58,30 @@ function media_help($route_name, RouteMatchInterface $route_match) {
    +      $output .= '<p>' . t('Media items behave differently than files and images regarding restricted access. While files and images, when configured to use the private storage, will inherit access permissions from the content where they are attached to, Media items have their own access restrictions. This usually means that by default users could have access to files on Media items even though they do not have access to the content that references the Media items. <a href="@doc_url">More information on configuring media access restrictions</a>.', [
    

    Nit: I think "Media items" should be lowercased to "media items".

  5. +++ b/core/modules/media/media.module
    @@ -58,7 +58,30 @@ function media_help($route_name, RouteMatchInterface $route_match) {
    +      $source_definition = $media_type->getSource()->getSourceFieldDefinition($media_type);
    +      if (!in_array($source_definition->getType(), ['file', 'image'])) {
    +        return;
    +      }
    

    This repeats code from hook_install(); seems like we should have a static method somewhere to determine this. How about a static method on the File source plugin to determine if a given media type is compatible with it?

marcoscano’s picture

Assigned: Unassigned » marcoscano
Issue tags: +BarcelonaMediaSprint

@phenaproxima thanks for reviewing!

I'm working on it.

marcoscano’s picture

Issue summary: View changes

1- OK
2- OK
3- OK
4- OK
5- Do you feel strongly about this? It seems to me that we would be saving only a couple lines of code duplication, and having an extra method for that would actually increase maintenance burden. (Unless I'm missing what you suggest to abstract out).

Added a test for the new warning messages and the settings flag to dismiss it, and also updated the IS and added the screenshots there too.

marcoscano’s picture

Assigned: marcoscano » Unassigned
Status: Needs work » Needs review
StatusFileSize
new11.18 KB
new10.08 KB

Not sure why the tests are failing, in manual test it works... :/

Any insight on that will be appreciated.

phenaproxima’s picture

Issue tags: -Needs tests

Looks really damn good. Everything I found, to be honest, is relatively nitpicky.

  1. +++ b/core/modules/media/media.module
    @@ -58,7 +59,30 @@ function media_help($route_name, RouteMatchInterface $route_match) {
    +      $output .= '<p>' . t('Media items behave differently than files and images regarding restricted access. While files and images, when configured to use the private storage, will inherit access permissions from the content where they are attached to, media items have their own access restrictions. This usually means that by default users could have access to files on media items even though they do not have access to the content that references the media items. <a href="@doc_url">More information on configuring media access restrictions</a>.', [
    

    Can we rephrase this a bit "...differently than files and images regarding restricted access" might read better as "...differently than files and images where restricted access is concerned."

  2. +++ b/core/modules/media/media.module
    @@ -58,7 +59,30 @@ function media_help($route_name, RouteMatchInterface $route_match) {
    +      $source_definition = $media_type->getSource()->getSourceFieldDefinition($media_type);
    +      if (!is_a($source_definition->getClass(), FileFieldItemList::class, TRUE)) {
    +        return;
    +      }
    

    So this is the second time in this patch that we have repeated the "check if this media type uses files" logic. Media Library also does this, which convinces me that this check needs to be a public static method of the File source plugin.

  3. +++ b/core/modules/media/media.module
    @@ -347,3 +371,22 @@ function _media_get_add_url($allowed_bundles) {
    +  $changed_from_private = $field->getSetting('uri_scheme') === 'public' && $field->original->getSetting('uri_scheme') === 'private';
    

    If this is a new field, $field->original might not be set, which will cause this code to fatal, no?

  4. +++ b/core/modules/media/tests/src/Functional/MediaAccessTest.php
    @@ -171,4 +174,47 @@ public function testMediaAccess() {
    +    $this->drupalGet("/admin/structure/media/manage/{$media_type->id()}/fields");
    

    Let's just call $this->getSession()->reload() here, rather than repeat the URL.

  5. +++ b/core/modules/media/tests/src/Functional/MediaAccessTest.php
    @@ -171,4 +174,47 @@ public function testMediaAccess() {
    +    $this->drupalGet("/admin/structure/media/manage/{$media_type->id()}/fields");
    

    Nit: Any chance of using Url::fromRoute() to generate the URL?

marcoscano’s picture

StatusFileSize
new12.27 KB
new8.23 KB

This addresses all points in #13, thanks!

The last submitted patch, 12: 2984093-12.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

marcoscano’s picture

StatusFileSize
new12.29 KB
new1.31 KB

Small improvement on the naming/documentation of the new helper method.

The last submitted patch, 14: 2984093-14.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

marcoscano’s picture

StatusFileSize
new12.3 KB
new1.35 KB

Not a good idea to rename the method and not update the calls to it...

The last submitted patch, 16: 2984093-16.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

phenaproxima’s picture

+++ b/core/modules/media/media.install
@@ -107,6 +108,31 @@ function media_requirements($phase) {
+      $types_to_warn = array_filter($media_types, function (MediaTypeInterface $type) {
+        return File::hasFileSourceField($type);
+      });

Nit: This can be one line: $types_to_warn = array_filter($media_types, [File::class, 'hasFileSourceField']).

Status: Needs review » Needs work

The last submitted patch, 18: 2984093-18.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

wim leers’s picture

  1. +++ b/core/modules/media/media.install
    @@ -107,6 +108,31 @@ function media_requirements($phase) {
    +              '@doc_url' => 'https://www.drupal.org/docs/8/core/modules/media/setting-up-private-access-to-media-items',
    
    +++ b/core/modules/media/media.module
    @@ -58,7 +59,30 @@ function media_help($route_name, RouteMatchInterface $route_match) {
    +        '@doc_url' => 'https://www.drupal.org/docs/8/core/modules/media/setting-up-private-access-to-media-items',
    ...
    +          '@doc_url' => 'https://www.drupal.org/docs/8/core/modules/media/setting-up-private-access-to-media-items',
    

    :doc_url

  2. +++ b/core/modules/media/media.module
    @@ -347,3 +371,22 @@ function _media_get_add_url($allowed_bundles) {
    +function media_field_storage_config_presave(Drupal\Core\Entity\EntityInterface $field) {
    

    Rather than doing this in a presave hook, this should be done in a config subscriber. See #3017935: Media items should not be available at /media/{id} to users with 'view media' permission by default for an example.

  3. +++ b/core/modules/media/media.module
    @@ -347,3 +371,22 @@ function _media_get_add_url($allowed_bundles) {
    +    // @todo There may be a more fine-grained way of doing this.
    +    \Drupal::service('cache.render')->invalidateAll();
    

    Cache::invalidateTags(['rendered']) is that cleaner way :)

    But are you sure we actually need to invalidate this?

  4. +++ b/core/modules/media/src/Plugin/media/Source/File.php
    @@ -124,4 +125,19 @@ public function createSourceField(MediaTypeInterface $type) {
    +   *   TRUE if the type uses a source plugin with a file/image as a source
    +   *   field, FALSE otherwise.
    ...
    +  public static function hasFileSourceField(MediaTypeInterface $type) {
    ...
    +    return is_a($source_field_definition->getClass(), FileFieldItemList::class, TRUE);
    

    Based on the name, I'd expect
    return $source_field_definition->getType() === 'file';

    But I get it; you want to make sure that @FieldType=image and other subclasses are also detected.

    So let's make that more clear, because it's a bit surprising.

    Also, I don't think the fact that it uses a @FieldType=file field is the problem here, I think the problem is that it's referencing a File entity. Wouldn't it be safer to check whether one of the target types is File? Then it'd also work for https://www.drupal.org/project/dynamic_entity_reference.

marcoscano’s picture

StatusFileSize
new11.93 KB
new10.79 KB

@Wim Leers Thanks for reviewing!

This should address #22 and also the test failures.

marcoscano’s picture

Status: Needs work » Needs review
wim leers’s picture

  1. +++ b/core/modules/media/media.module
    @@ -71,18 +72,28 @@ function media_help($route_name, RouteMatchInterface $route_match) {
    +      $output = [
    ...
    +      return $output;
    

    Übernit: we usually call a variable containing a render array $build.

  2. +++ b/core/modules/media/media.module
    @@ -371,22 +382,3 @@ function _media_get_add_url($allowed_bundles) {
    -function media_field_storage_config_presave(Drupal\Core\Entity\EntityInterface $field) {
    

    🎉

  3. +++ b/core/modules/media/tests/src/Functional/MediaAccessTest.php
    @@ -201,8 +201,11 @@ public function testMediaAccessWarnings() {
    +    $role = Role::load(RoleInterface::AUTHENTICATED_ID);
    +    $role->grantPermission('administer site configuration');
    +    $role->save();
    

    Übernit: can be chained.

marcoscano’s picture

StatusFileSize
new11.92 KB
new2.45 KB

Thanks for the feedback!

wim leers’s picture

Status: Needs review » Reviewed & tested by the community
  1. +++ b/core/modules/media/media.module
    @@ -58,7 +60,40 @@ function media_help($route_name, RouteMatchInterface $route_match) {
    +        $warning = '<p>' . t('The source field is configured to use the private file storage. By default, the media items will be accessible to any users with access to %type media, even if the user does not have access to content that references it. <a href=":doc_url">More information on configuring media access restrictions</a>.', [
    +            '%type' => $media_type->label(),
    +            ':doc_url' => 'https://www.drupal.org/docs/8/core/modules/media/setting-up-private-access-to-media-items',
    +          ]) . '</p>';
    

    Übernit: small indentation problem here: the last 3 quoted lines have two leading spaces too many.

  2. +++ b/core/modules/media/media.module
    @@ -58,7 +60,40 @@ function media_help($route_name, RouteMatchInterface $route_match) {
    +        $build['#markup'] = $warning;
    

    I was concerned that this warning doesn't look like a warning, because it's just help text on the page that is easily missed. But @marcoscano pointed out that this is exactly what was requested by @xjm, because it's a warning that cannot be acted upon/resolved. Tricky to make a decision here, but I get it.

    This was my only remaining concern.

marcoscano’s picture

StatusFileSize
new11.91 KB
new1.18 KB

#27.1: Ops, sorry I missed that
#27.2: yes, see #4.1

Thanks!

The last submitted patch, 26: 2984093-26.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

marcoscano’s picture

Issue summary: View changes
StatusFileSize
new441.62 KB
new324.38 KB
new176.12 KB

Updated the IS screenshots with the most up-to-date text from the patch.

alexpott’s picture

Status: Reviewed & tested by the community » Needs work
  1. It's great that there is a way to disable the warning. On many of the existing warnings people have asked for this.
  2. +++ b/core/modules/media/config/install/media.settings.yml
    @@ -1,3 +1,4 @@
    +show_private_file_warning: true
    
    +++ b/core/modules/media/config/schema/media.schema.yml
    @@ -11,6 +11,9 @@ media.settings:
    +    show_private_file_warning:
    +      type: boolean
    +      label: 'Whether the site should show a warning on the UI when the source field is configured to use private file storage'
    

    We need an update path to add this for existing sites. Also I think in the update we should return text telling users that they have this situation in case they are unaware.

  3. +++ b/core/modules/media/media.install
    @@ -107,6 +108,29 @@ function media_requirements($phase) {
    +              '%types' => implode(", ", $types_to_warn),
    

    This doesn't really work for translatable strings. We should use an inline item list and render it.

    An inline item list looks like:

          $requires = [
            '#theme' => 'item_list',
            '#items' => $module['#requires'],
            '#context' => ['list_style' => 'comma-list'],
          ];
    

    Also requirements can be render arrays. See code in system_requirements()

  4. +++ b/core/modules/media/src/Plugin/media/Source/File.php
    @@ -124,4 +125,24 @@ public function createSourceField(MediaTypeInterface $type) {
    +    $target_types = is_array($target_type) ? $target_type : [$target_type];
    +    return in_array('file', $target_types, TRUE);
    

    I think this can be abbreviated to

    return in_array('file', (array) $target_type, TRUE);
    
  5. Given the unexpectedness of how media behaves with private files I wonder if we should consider hiding the private file option when adding file fields to new media types. Because it is extremely hard to get right and extremely easy to get wrong. Perhaps this can be a followup.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

xjm’s picture

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

vsujeetkumar’s picture

Status: Needs work » Needs review
StatusFileSize
new11.97 KB

Re-roll patch created for 9.1.x

phenaproxima’s picture

Priority: Normal » Major
Issue tags: +Triaged Media Initiative issue

This is certainly a critical issue for the completion of the Media Initiative, so I'm bumping the priority.

benjifisher’s picture

Issue summary: View changes
Issue tags: -Needs usability review

Usability review

We looked at this issue at the #3173646: Drupal Usability Meeting 2020-09-29.

Generally, the messages seem clear. Of course, the new documentation page has to be completed.

I am removing the word "warning" from the issue summary.

The only message that seems to need some attention is the one on the help page:

  • Remove "to" from "where they are attached to".
  • Refer to fields in the first sentence: "Media reference fields" and "file and image fields".
  • Break up the long second sentence into two parts, and consider changing the order. Something like "Media items have their own access restrictions. When file and image fields are configured ..., they inherit ...".

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

anybody’s picture

I agree with #38 and as said in #37 this is still quite important for Drupal Security and Triaged Media Initiative. So should we incorporate the changes from #38 or is this to be discussed first?

Looking at security and priority we should get this more or simple "fix" in asap, shouldn't we?

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

needs-review-queue-bot’s picture

Status: Needs review » Needs work
StatusFileSize
new144 bytes

The Needs Review Queue Bot tested this issue. It either no longer applies to Drupal core, or fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".

Apart from a re-roll or rebase, this issue may need more work to address feedback in the issue or MR comments. To progress an issue, incorporate this feedback as part of the process of updating the issue. This helps other contributors to know what is outstanding.

Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.

anybody’s picture

@benjifisher sorry to ask this 3 years later, but do you know which patch was reviewed? #36?

If it's just these wording changes, I'd create a MR against 10.1.x and push things forward here.
Sad to see that https://www.drupal.org/project/media_private_access has no Drupal 9/10 release, while this is still problematic.

Grevil made their first commit to this issue’s fork.

grevil’s picture

Status: Needs work » Needs review

I applied patch #36 manually on 10.1.x and changed the wording proposed in #38.

Please review!

anybody’s picture

Status: Needs review » Needs work

Thanks @Grevil! Just one wording change, then all points from #38 are addressed.
See my comment in GitLab. Or am I wrong?

Remove "to" from "where they are attached to".

grevil’s picture

Status: Needs work » Needs review
anybody’s picture

Status: Needs review » Reviewed & tested by the community

Well done! As all points from #38 have been addressed, I'm setting this RTBC for maintainers to have a look.

What about "Needs documentation updates" tag?
Also note #4.4 as possible followup. Do we need a discussion on that point?

I think it's most important to get this merged asap.

phenaproxima’s picture

Status: Reviewed & tested by the community » Needs work

Looks like tests are failing on coding standards checks.

grevil’s picture

My apologies, my dev environment is not suited for core issue... Should definitely fix that!

Edit: Will fix that tomorrow.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.