Skip to main content
drupalreleases
Release: Cms 2.2.3 — Update released for Drupal core (2.2.3)! Release: Easy Breadcrumb 2.0.11 — Minor update available for module easy_breadcrumb (2.0.11). Release: Bootstrap 8.x-3.42 — Minor update available for theme bootstrap (8.x-3.42). Release: Editoria11y Accessibility Checker 3.0.10 — Minor update available for module editoria11y (3.0.10). Release: Editoria11y Accessibility Checker 2.2.24 — Minor update available for module editoria11y (2.2.24). Release: Leaflet 10.4.13 — Minor update available for module leaflet (10.4.13). Release: Flag 5.1.1 — Minor update available for module flag (5.1.1). Release: MCP Sentinel 2.33.0 — Minor update available for module mcp_sentinel (2.33.0). Module Revived: Bootstrap 8.x-3.41 — Theme bootstrap updated after 6 months of inactivity (8.x-3.41). Security Coverage: Component Library — Module component_library now has official Drupal security advisory coverage.

This module provides each user with their own personal media library, allowing them to upload and manage their own images. It enables users to upload new photos, reuse existing ones, and delete or replace their uploaded images from a dedicated gallery page.

Gives each user their own personal media library: upload an image, reuse one
you've already uploaded elsewhere on the site, and manage (replace/delete)
your own photos from a dedicated gallery page.

Features

This module simply provides a user_photo media bundle,
a settings form controlling upload limits, and the plumbing (a reusable upload-handling service, an EXIF-stripping service, and a custom entity reference selection plugin) that any other module can build on top of to let a user attach one of their own images to some piece of content.

Any feature wanting "let a user attach one of their own images" references the user_photo media bundle this module provides, and calls user_media_library.upload_handler to create one from a raw upload.

See chirp_photo_gallery (a submodule of the chirp module) for a working example of a consumer integration.

Post-Installation

Installation

drush en user_media_library -y

Configuration

Navigate to Configuration → Media → User Media Library
(/admin/config/media/user-media-library), gated behind the
administer user media library permission.

Setting Default Description Maximum upload size 5 MB Rejects an upload outright if it exceeds this. Allowed file extensions jpg jpeg png gif Space-separated, no leading dot. Maximum image width 1200px See "Oversized images" below — scales down, never rejects. Maximum image height 1200px Same behavior as width. Remove location/device data by default Enabled Only sets the default state of a checkbox each uploader still sees and can change per-upload — never silently strips or silently keeps EXIF data without the uploader's own choice being visible.

Per-user management and permissions

Management (replace/delete your own photos) reuses Drupal core's own Media
entity edit/delete forms directly — there is no bespoke manage logic to
configure. Drupal generates the following permissions automatically for the
user_photo bundle; assign them per role as your site requires:

Permission Typical audience create user_photo media Any role allowed to upload photos at all edit own user_photo media/
delete own user_photo media Same as above — lets a user manage their own uploads edit any user_photo media/
delete any user_photo media Site administrators only — for cleanup (archiving unused images, removing a departed member's leftovers, or removing an image that was itself the reason some piece of content got reported/moderated)

Deliberately not granted to whatever role manages your site's general
media library (e.g. image bundle content editors) — user_photo is a
separate bundle specifically so a site can keep "who manages the public media
library" and "who manages personal photo uploads" as two different,
independently-assignable sets of permissions, without any extra code.

Additional Requirements

- Drupal `^11.3`
- `drupal:media`
- `drupal:media_library`
- `drupal:image`

Supporting this Module

This module is supported by Lisa Harrison (lisa.rae), an individual contributor and long-time member of the Drupal community.

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
4
Tracked since
Jul 2026
Latest release
1 month ago
Releases (12 mo)
4 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
1.1.0-rc3 Pre-release 11 Aug 14, 2026
1.1.0-rc2 Pre-release 11 Aug 14, 2026
1.1.x-dev Dev 11 Aug 14, 2026
1.1.0-rc1 Pre-release 11 Jul 6, 2026