Geheimer Vorschau-Link: /vorschau/<subdomain>/<token> setzt ein Cookie nur fuer diese Preview
- websiteProjects.shareToken (scripts/vorschau-link-setup.mjs) - POST/DELETE /api/admin/website-projects/:id/vorschau-link fuer Mitarbeiter (neu erzeugen / abschalten) - GET /api/vorschau-link/pruefen fuer die Login-Pruefung der Previews (preview-portal /auth/verify) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
594aa9196a
commit
2873638b1c
6 files changed
+368
No files matched your search
@@ -7,6 +7,7 @@ import {
|
||||
import { assignProject, reconcileProject } from '../../services/projectAssignment.js'
|
||||
import { completeAssignment } from '../../services/projectKindAssign.js'
|
||||
import { requireAppwriteTeam } from '../../middleware/appwriteStaff.js'
|
||||
import { renewShareLink, removeShareLink } from '../../services/vorschauLink.js'
|
||||
|
||||
const router = Router()
|
||||
|
||||
@@ -127,4 +128,21 @@ router.post('/:id/pushes', async (req, res) => {
|
||||
}
|
||||
})
|
||||
|
||||
// Geheimer Vorschau-Link: neu erzeugen (alter Link wird ungueltig) oder abschalten
|
||||
router.post('/:id/vorschau-link', async (req, res) => {
|
||||
try {
|
||||
return res.json({ ok: true, ...(await renewShareLink(req.params.id)) })
|
||||
} catch (err) {
|
||||
return res.status(err.status || 500).json({ error: err.message || 'Link konnte nicht erzeugt werden' })
|
||||
}
|
||||
})
|
||||
|
||||
router.delete('/:id/vorschau-link', async (req, res) => {
|
||||
try {
|
||||
return res.json({ ok: true, ...(await removeShareLink(req.params.id)) })
|
||||
} catch (err) {
|
||||
return res.status(err.status || 500).json({ error: err.message || 'Link konnte nicht abgeschaltet werden' })
|
||||
}
|
||||
})
|
||||
|
||||
export default router
|
||||
Reference in new issue
Block a user