Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Usage Milestone: Time Field for Drupal 8+ Module time_field crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

File Crusader

11 sites No security coverage
View on drupal.org

This module prevents files attached to unpublished content from being accessed via their public URLs. It automatically moves these files to a protected location when their parent entity is unpublished, enhancing security and ensuring files respect content publishing status.

File Crusader is a Drupal module that enhances file access control by moving public files to an inaccessible path when their parent entity is unpublished. This prevents users from accessing files via their public URLs once the content they were attached to is not published.

Problem It Solves
In Drupal core, files stored in the public file system remain reachable by direct URL even if the parent content (such as a node or media entity) is unpublished. File Crusader closes that gap by programmatically relocating those files into a protected location when their parent is unpublished — ensuring that files truly respect entity publishing state.

Key Features
- Automatically moves public files to an inaccessible private path when their parent entity is unpublished.

- Respects the publish/unpublish status of all parent entities before acting.

- Shows warnings when a file cannot be unpublished due to active references (for example, attached to another published entity).

- Supports unpublishing single media entity files when the media parent is unpublished.

Use Cases
- Ensuring that unpublished content does not leak associated files via direct URLs.

- Preventing user access to attached media or images when parent content is unpublished.

- Improving security posture for sites with restricted or sensitive media.

In the future, this module could be useful for organizations which change administrations and need to ensure old policy documents cached in search engines are not accessible and interpreted as current.

Installation
composer require 'drupal/file_crusader:^1.0@alpha'

Compatibility
- Drupal 10
- Drupal 11

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
2
Tracked since
Feb 2026
Latest release
5 months ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Active

Releases

Version Type Core Release date
1.0.0-alpha4 Pre-release 10–11 Mar 30, 2026
1.0.0-alpha3 Pre-release 10–11 Feb 11, 2026