fix: prevent user from subscribing to own publication #1

closed
opened by ewancroft.uk targeting main from [deleted fork]: prevent-user-from-subscription-to-own-pub
Changed files
+15
app
lish
[did]
[publication]
+10
app/lish/Subscribe.tsx
··· 186 pub_uri: string; 187 base_url: string; 188 subscribers: { identity: string }[]; 189 }) => { 190 let { identity } = useIdentityData(); 191 let searchParams = useSearchParams(); ··· 195 let subscribed = 196 identity?.atp_did && 197 props.subscribers.find((s) => s.identity === identity.atp_did); 198 199 if (successModalOpen) 200 return ( ··· 203 setOpen={setSuccessModalOpen} 204 /> 205 ); 206 if (subscribed) { 207 return <ManageSubscription {...props} />; 208 }
··· 186 pub_uri: string; 187 base_url: string; 188 subscribers: { identity: string }[]; 189 + pub_creator?: string; 190 }) => { 191 let { identity } = useIdentityData(); 192 let searchParams = useSearchParams(); ··· 196 let subscribed = 197 identity?.atp_did && 198 props.subscribers.find((s) => s.identity === identity.atp_did); 199 + 200 + // Check if the logged-in user is the publication owner 201 + let isOwner = identity?.atp_did && props.pub_creator === identity.atp_did; 202 203 if (successModalOpen) 204 return ( ··· 207 setOpen={setSuccessModalOpen} 208 /> 209 ); 210 + 211 + // Don't allow users to subscribe to their own publication 212 + if (isOwner) { 213 + return null; 214 + } 215 + 216 if (subscribed) { 217 return <ManageSubscription {...props} />; 218 }
+4
app/lish/[did]/[publication]/[rkey]/LinearDocumentPage.tsx
··· 129 pubName={ 130 document.documents_in_publications[0].publications.name 131 } 132 /> 133 )} 134 </div>
··· 129 pubName={ 130 document.documents_in_publications[0].publications.name 131 } 132 + pub_creator={ 133 + document.documents_in_publications[0].publications 134 + .identity_did 135 + } 136 /> 137 )} 138 </div>
+1
app/lish/[did]/[publication]/page.tsx
··· 107 pubName={publication.name} 108 pub_uri={publication.uri} 109 subscribers={publication.publication_subscriptions} 110 /> 111 </div> 112 </div>
··· 107 pubName={publication.name} 108 pub_uri={publication.uri} 109 subscribers={publication.publication_subscriptions} 110 + pub_creator={publication.identity_did} 111 /> 112 </div> 113 </div>