fix: prevent user from subscribing to own publication #1

Changed files
+15
app
lish
[did]
[publication]
+10
app/lish/Subscribe.tsx
···
pub_uri: string;
base_url: string;
subscribers: { identity: string }[];
}) => {
let { identity } = useIdentityData();
let searchParams = useSearchParams();
···
let subscribed =
identity?.atp_did &&
props.subscribers.find((s) => s.identity === identity.atp_did);
if (successModalOpen)
return (
···
setOpen={setSuccessModalOpen}
/>
);
if (subscribed) {
return <ManageSubscription {...props} />;
}
···
pub_uri: string;
base_url: string;
subscribers: { identity: string }[];
+
pub_creator?: string;
}) => {
let { identity } = useIdentityData();
let searchParams = useSearchParams();
···
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 (
···
setOpen={setSuccessModalOpen}
/>
);
+
+
// Don't allow users to subscribe to their own publication
+
if (isOwner) {
+
return null;
+
}
+
if (subscribed) {
return <ManageSubscription {...props} />;
}
+4
app/lish/[did]/[publication]/[rkey]/LinearDocumentPage.tsx
···
pubName={
document.documents_in_publications[0].publications.name
}
/>
)}
</div>
···
pubName={
document.documents_in_publications[0].publications.name
}
+
pub_creator={
+
document.documents_in_publications[0].publications
+
.identity_did
+
}
/>
)}
</div>
+1
app/lish/[did]/[publication]/page.tsx
···
pubName={publication.name}
pub_uri={publication.uri}
subscribers={publication.publication_subscriptions}
/>
</div>
</div>
···
pubName={publication.name}
pub_uri={publication.uri}
subscribers={publication.publication_subscriptions}
+
pub_creator={publication.identity_did}
/>
</div>
</div>