Admin: Reiter E-Mail-Speicher, Abo mit Produkt; Schnittstelle fürs Ticketsystem
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
19f9c747a2
commit
63d3bb11bf
10 files changed
+525
-4
No files matched your search
@@ -93,6 +93,14 @@ export async function startAppwriteMock({ schema = {} } = {}) {
|
||||
const docPath = url.pathname.match(/^\/v1\/databases\/[^/]+\/collections\/([^/]+)\/documents(?:\/([^/]+))?$/)
|
||||
const userPath = url.pathname.match(/^\/v1\/users\/([^/]+)$/)
|
||||
if (userPath && req.method === 'GET') return [200, { $id: userPath[1], passwordUpdate: '' }]
|
||||
// GET /v1/account (requireAppwriteStaff, Ticketsystem-JWT): jwt-admin = Mitarbeiter mit Label admin,
|
||||
// jwt-kunde = angemeldet ohne Label, alles andere 401 wie Appwrite bei einem ungueltigen JWT
|
||||
if (url.pathname === '/v1/account' && req.method === 'GET') {
|
||||
const jwt = req.headers['x-appwrite-jwt']
|
||||
if (jwt === 'jwt-admin') return [200, { $id: 'u_admin', email: 'kenso@webklar.com', labels: ['admin'] }]
|
||||
if (jwt === 'jwt-kunde') return [200, { $id: 'u_admin', email: 'kenso@webklar.com', labels: [] }]
|
||||
return [401, { message: 'User (role: guests) missing scope (account)', code: 401, type: 'general_unauthorized_scope' }]
|
||||
}
|
||||
if (!docPath) return [404, { message: 'Route not found', code: 404 }]
|
||||
|
||||
const [, collection, id] = docPath
|
||||
|
||||
Reference in new issue
Block a user