Skip to content

Web interface omits "Add to album" in some circumstances where it shouldn't #24793

@jonsiddle

Description

@jonsiddle

I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

I have an Immich installation with two main users (say A and B). Both have partner sharing enabled for the other and everything appears in the timeline.

We're trying to create an album with a mixture of images in A's library and B's library. Although A can see all photos from A and B, the option to add to an album is not present when viewing B's images.

However, on the android app, this works fine - so it appears to be a problem showing the action, not an issue with functionality or permissions.

Looking at the code for asset-viewer-nav-bar.svelte I see an {#if isOwner} check which seems to hide not just this action but a lot of others. In fact, there's a nested (and currently redundant) {#if isOwner} check for one of them.

Is this as simple as removing the all-encompassing check and propagating it down to only the actions which actually require ownership?

The OS that Immich Server is running on

docker (on Debian 13)

Version of Immich Server

v2.4.1

Version of Immich Mobile App

v1.130.0

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

No response

Your docker-compose.yml content

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /path/to/photos:/mnt/photos:ro
    env_file:
      - .env
    ports:
      - '2283:2283'
    networks:
      - nginx-net
      - immich-net
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    networks:
      - immich-net
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:905c4ee67b8e0aa955331960d2aa745781e6bd89afc44a8584bfd13bc890f0ae
    networks:
      - immich-net
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    #image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    networks:
      - immich-net
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    shm_size: 128mb
    restart: always

volumes:
  model-cache:

networks:
  nginx-net:
    external: true
  immich-net:
    name: immich-net

Your .env content

UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./postgres

TZ=Europe/London

IMMICH_VERSION=release

DB_PASSWORD=xxxxxxxx

DB_USERNAME=postgres
DB_DATABASE_NAME=immich

Reproduction steps

  1. Make sure user A has user B set as a partner (and visa-versa)
  2. Have some photos owned by A and some owned by B
  3. As user A, add some of A's photos to an album - this works
  4. As user A, try to add some of B's photos to the album
  5. Observe that the option is missing

The equivalent steps in the mobile app work.

Relevant log output

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions