diff --git a/backend/server/users/serializers.py b/backend/server/users/serializers.py index 2776f805b..f32df30de 100644 --- a/backend/server/users/serializers.py +++ b/backend/server/users/serializers.py @@ -97,11 +97,12 @@ class CustomUserDetailsSerializer(UserDetailsSerializer): """ has_password = serializers.SerializerMethodField() + immich_server_url = serializers.SerializerMethodField() class Meta(UserDetailsSerializer.Meta): model = CustomUser - fields = UserDetailsSerializer.Meta.fields + ['has_password', 'disable_password'] - read_only_fields = UserDetailsSerializer.Meta.read_only_fields + ('uuid', 'has_password', 'disable_password') + fields = UserDetailsSerializer.Meta.fields + ['has_password', 'disable_password', 'immich_server_url'] + read_only_fields = UserDetailsSerializer.Meta.read_only_fields + ('uuid', 'has_password', 'disable_password', 'immich_server_url') @staticmethod def get_has_password(instance): @@ -110,6 +111,12 @@ def get_has_password(instance): """ return instance.has_usable_password() + @staticmethod + def get_immich_server_url(instance): + from integrations.models import ImmichIntegration + integration = ImmichIntegration.objects.filter(user=instance).first() + return integration.server_url if integration else None + def to_representation(self, instance): """ Customizes the serialized output to modify `profile_pic` URL and add computed fields. diff --git a/frontend/src/lib/types.ts b/frontend/src/lib/types.ts index 88f6f88c5..81b4e001b 100644 --- a/frontend/src/lib/types.ts +++ b/frontend/src/lib/types.ts @@ -19,6 +19,7 @@ export type User = { disable_password: boolean; measurement_system: 'metric' | 'imperial'; default_currency: string; + immich_server_url: string | null; }; export type Collaborator = { diff --git a/frontend/src/routes/locations/[id]/+page.svelte b/frontend/src/routes/locations/[id]/+page.svelte index 28539a54a..6f67d53bf 100644 --- a/frontend/src/routes/locations/[id]/+page.svelte +++ b/frontend/src/routes/locations/[id]/+page.svelte @@ -36,6 +36,7 @@ let measurementSystem = data.user?.measurement_system || 'metric'; console.log(data); + let immichServerUrl: string | null = data.user?.immich_server_url ?? null; let adventure: AdditionalLocation; let currentSlide = 0; @@ -675,7 +676,11 @@ {/if} -