From 511419989e8b25077f5bcfa85c41672fc7db2a5c Mon Sep 17 00:00:00 2001 From: Ewan Date: Fri, 21 Nov 2025 01:03:28 +0000 Subject: [PATCH] fix: prevent user from subscribing to own publication --- app/lish/Subscribe.tsx | 10 ++++++++++ .../[did]/[publication]/[rkey]/LinearDocumentPage.tsx | 4 ++++ app/lish/[did]/[publication]/page.tsx | 1 + 3 files changed, 15 insertions(+) diff --git a/app/lish/Subscribe.tsx b/app/lish/Subscribe.tsx index 001ff6f..aa2bd1d 100644 --- a/app/lish/Subscribe.tsx +++ b/app/lish/Subscribe.tsx @@ -186,6 +186,7 @@ export const SubscribeWithBluesky = (props: { pub_uri: string; base_url: string; subscribers: { identity: string }[]; + pub_creator?: string; }) => { let { identity } = useIdentityData(); let searchParams = useSearchParams(); @@ -195,6 +196,9 @@ export const SubscribeWithBluesky = (props: { let subscribed = identity?.atp_did && props.subscribers.find((s) => s.identity === identity.atp_did); + + // Check if the logged-in user is the publication owner + let isOwner = identity?.atp_did && props.pub_creator === identity.atp_did; if (successModalOpen) return ( @@ -203,6 +207,12 @@ export const SubscribeWithBluesky = (props: { setOpen={setSuccessModalOpen} /> ); + + // Don't allow users to subscribe to their own publication + if (isOwner) { + return null; + } + if (subscribed) { return ; } diff --git a/app/lish/[did]/[publication]/[rkey]/LinearDocumentPage.tsx b/app/lish/[did]/[publication]/[rkey]/LinearDocumentPage.tsx index ffa27a2..d64d594 100644 --- a/app/lish/[did]/[publication]/[rkey]/LinearDocumentPage.tsx +++ b/app/lish/[did]/[publication]/[rkey]/LinearDocumentPage.tsx @@ -129,6 +129,10 @@ export function LinearDocumentPage({ pubName={ document.documents_in_publications[0].publications.name } + pub_creator={ + document.documents_in_publications[0].publications + .identity_did + } /> )} diff --git a/app/lish/[did]/[publication]/page.tsx b/app/lish/[did]/[publication]/page.tsx index 0d21712..45fef66 100644 --- a/app/lish/[did]/[publication]/page.tsx +++ b/app/lish/[did]/[publication]/page.tsx @@ -107,6 +107,7 @@ export default async function Publication(props: { pubName={publication.name} pub_uri={publication.uri} subscribers={publication.publication_subscriptions} + pub_creator={publication.identity_did} /> -- 2.43.0