- Timestamp:
- 08/18/2026 06:47:58 PM (3 weeks ago)
- Branches:
- main
- Children:
- f5cf299
- Parents:
- b1b7652
- git-author:
- Bart <bart@…> (08/17/2026 07:37:17 PM)
- git-committer:
- Bart <bart@…> (08/18/2026 06:47:58 PM)
- Location:
- src
- Files:
-
- 1 added
- 1 edited
-
services/PostAccessService.js (modified) (1 diff)
-
views/partials/post-body.ejs (added)
Legend:
- Unmodified
- Added
- Removed
-
src/services/PostAccessService.js
rb1b7652 r8b65e67 69 69 export function canReadBody(post, viewer) { return postAccess(post, viewer) === 'full'; } 70 70 71 export default { postAccess, canReadBody, paidTeaser }; 71 /** 72 * Eén bericht, klaar voor de tijdlijn. 73 * 74 * DE HELE REDEN DAT DIT EEN FUNCTIE IS: het lijf wordt alleen GERENDERD als het 75 * ook getoond mag worden. Een sjabloon dat zelf `<% if (access === 'full') %>` 76 * doet krijgt de volledige tekst tóch mee in het model, en dan is het één 77 * vergeten conditie -- of één `?partial=1` die net iets anders samenstelt -- 78 * tussen een betaalmuur en de tekst erachter. Hier komt hij niet eens mee. 79 * 80 * `renderBody` wordt ingespoten (posts.js levert renderPostBodyHtml), zodat 81 * deze module niets van routes of sjablonen hoeft te weten. 82 */ 83 export function postEntry(post, viewer, { renderBody } = {}) { 84 const access = postAccess(post, viewer); 85 const full = access === 'full'; 86 return { 87 slug: post && post.slug, 88 title: (post && post.title) || '', 89 access, 90 // Alleen bij een gesloten poort een teaser, en nooit allebei: de teaser is 91 // de vervanging van het lijf, niet een voorproefje ernaast. 92 teaser: full || access === 'forbidden' ? null : paidTeaser(post), 93 content_html: full && typeof renderBody === 'function' ? renderBody(post) : null, 94 }; 95 } 96 97 export default { postAccess, canReadBody, paidTeaser, postEntry };
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)