Skip to content

[FEATURE] Image Visibility Control (Public vs Restricted) #172

@patchingfailed

Description

@patchingfailed

Context

In wedding workflows there is usually:

  • a set of images meant for sharing with guests
  • and a subset intended only for the couple / photographer

This is not about “public internet access”, but about different user groups within the same event gallery.

Proposed Visibility Model

Define visibility relative to authenticated user roles:

Hierarchy example:

  • Photographer / Admin
    • sees everything
  • Client / Commissioner (e.g. couple)
    • sees everything
  • Guests / Staff of client
    • see only unrestricted images

So:

  • Public (Unrestricted)
    Visible to all users with access to the gallery (including guests)

  • Restricted
    Visible only to elevated roles (Photographer/Admin + Client)

This keeps the concept simple while covering common real-world workflows.


Describe the solution you'd like

Add a per-image visibility attribute:

  • Public (default)
  • Restricted

Editable:

  • During import (default flag)
  • After import via bulk edit (similar to category editing)

Behavior:

  • Filtering/rendering automatically respects user role
  • No category dependency
  • Works at image level

Use Case

  • Keep one cohesive event gallery
  • Avoid splitting galleries
  • Avoid external permission handling
  • Provide privacy control for selected images

Implementation Scope Suggestion

MVP

  • Binary flag
  • Role check based on existing authentication roles
  • Bulk edit support

Future (optional)

  • More granular role targeting
  • Custom visibility groups
  • Per-category defaults

Additional Note

The goal is not to introduce a complex permission matrix — just a lightweight visibility layer aligned with typical event photography workflows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions