Opened 9 years ago
Closed 7 days ago
#36803 closed defect (bug) (wontfix)
ms-files.php: inconsistent behaviour for upload visibility on archived sites
Reported by: | Owned by: | ||
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 4.5.2 |
Component: | Media | Keywords: | has- |
Focuses: | multisite | Cc: |
Description
Hey,
i just ran into an odd issue on one of our clients Multisites. I archived the said site and โ as you know โ it remains accessible for network admins. The matching files however don't. I followed this down to ms-files.php::21ff.
<?php if ( $current_blog->archived == '1' || $current_blog->spam == '1' || $current_blog->deleted == '1' ) { status_header( 404 ); die( '404 — File not found.' ); }
You see that ms-files.php checks, if the blog is archived (or spam or deleted) and than throws out a 404. Shouldn't this include a check for network admin users to see the files? Or, if that's not desirable, couldn't we make this check accessible for filters?
Thanks for the good work!
Christian
Change History (16)

This ticket was mentioned in โSlack in #core-multisite by flixos90. โView the logs.
9 years ago

This ticket was mentioned in โPR #7696 on โWordPress/wordpress-develop by โ@debarghyabanerjee.
6 months ago #4
- Keywords has- added; needs- removed
Trac Ticket: Core-36803
## Description:
- An issue was identified in the multisite installations where archived sites remain accessible to network administrators, but the associated files do not. This behavior originates from the logic in ms-files.php, particularly around line 21:
if ( $current_blog->archived == '1' || $current_blog->spam == '1' || $current_blog->deleted == '1' ) { status_header( 404 ); die( '404 — File not found.' ); }
- The current implementation checks if the blog is archived, marked as spam, or deleted, and subsequently returns a 404 error for file requests. However, this does not account for network administrators who should retain access to these files.
## Proposed Solution
- An additional check using is_super_admin() has been implemented. This adjustment allows network administrators to access files even if the site is archived, spam, or deleted. The modified code snippet is as follows:
if ( ( $current_blog->archived == '1' || $current_blog->spam == '1' || $current_blog->deleted == '1' ) && ! is_super_admin() ) { status_header( 404 ); die( '404 — File not found.' ); }
## Benefits
- Enhanced Access for Network Administrators: This change ensures that network admins can access necessary files for archived sites, improving usability and functionality.
- Preservation of Current Logic: The existing restrictions remain in place for regular users, maintaining intended access controls.

โ@audrasjb commented on โPR #7696:
3 months ago #6
I tested this and I can confirm the resource doesn't return a 404 when logged in as a super-admin like role ๐

This ticket was mentioned in โSlack in #core by audrasjb. โView the logs.
3 months ago

โ@audrasjb commented on โPR #7696:
3 months ago #8
I committed the change proposed by Clorith.

This ticket was mentioned in โSlack in #core by audrasjb. โView the logs.
2 months ago

โ@audrasjb commented on โPR #7696:
2 months ago #12
committed in https://core.trac.wordpress.org/changeset/59967
#14
@
4 weeks ago
- Keywords close added
- Milestone changed from 6.8 to 6.9
- Resolution fixed deleted
- Status changed from closed to reopened
Reopening as the commit for this ticket was reverted r60170 as it was triggering a fatal error in systems using the legacy rewrites.
Adding the lose keyword as my inclination is to close the ticket as unplanned/wontfix as the legacy rewrites are part of a long deprecated system.
#16
@
7 days ago
- Keywords close removed
- Milestone 6.9 deleted
- Resolution set to wontfix
- Status changed from reopened to closed
Adding the lose keyword as my inclination is to close the ticket as unplanned/wontfix as the legacy rewrites are part of a long deprecated system.
I think this is correct. Related: #63397
Hi @antwortzeit, thanks for taking the time to open a ticket. We should be able to provide some more consistency here.
It looks like the safest way would be to add an
is_super_admin()
check rather than rely on any other capabilities. Becausems-files.php
usesSHORTINIT
, some of our other options are limited.