mirror of https://github.com/wg-easy/wg-easy
22 changed files with 60 additions and 74 deletions
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler((event) => { |
|||
assertMethod(event, 'GET'); |
|||
setHeader(event, 'Content-Type', 'application/json'); |
|||
return `"${LANG}"`; |
|||
}); |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler((event) => { |
|||
assertMethod(event, 'GET'); |
|||
setHeader(event, 'Content-Type', 'application/json'); |
|||
return RELEASE; |
|||
}); |
@ -0,0 +1,9 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
const session = await useSession(event, SESSION_CONFIG); |
|||
const sessionId = session.id; |
|||
|
|||
await session.clear(); |
|||
|
|||
SERVER_DEBUG(`Deleted Session: ${sessionId}`); |
|||
return { success: true }; |
|||
}); |
@ -0,0 +1,11 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
const session = await useSession(event, SESSION_CONFIG); |
|||
const authenticated = REQUIRES_PASSWORD |
|||
? !!(session.data && session.data.authenticated) |
|||
: true; |
|||
|
|||
return { |
|||
requiresPassword: REQUIRES_PASSWORD, |
|||
authenticated, |
|||
}; |
|||
}); |
@ -0,0 +1,28 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
const session = await useSession(event, SESSION_CONFIG); |
|||
const { password } = await readBody(event); |
|||
|
|||
if (!REQUIRES_PASSWORD) { |
|||
// if no password is required, the API should never be called.
|
|||
// Do not automatically authenticate the user.
|
|||
throw createError({ |
|||
status: 401, |
|||
message: 'Invalid state', |
|||
}); |
|||
} |
|||
|
|||
if (!isPasswordValid(password)) { |
|||
throw createError({ |
|||
status: 401, |
|||
message: 'Incorrect Password', |
|||
}); |
|||
} |
|||
|
|||
const data = await session.update({ |
|||
authenticated: true, |
|||
}); |
|||
|
|||
SERVER_DEBUG(`New Session: ${data.id}`); |
|||
|
|||
return { success: true }; |
|||
}); |
@ -1,48 +0,0 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
if (isMethod(event, 'GET')) { |
|||
const session = await useSession(event, SESSION_CONFIG); |
|||
const authenticated = REQUIRES_PASSWORD |
|||
? !!(session.data && session.data.authenticated) |
|||
: true; |
|||
|
|||
return { |
|||
requiresPassword: REQUIRES_PASSWORD, |
|||
authenticated, |
|||
}; |
|||
} else if (isMethod(event, 'POST')) { |
|||
const session = await useSession(event, SESSION_CONFIG); |
|||
const { password } = await readBody(event); |
|||
|
|||
if (!REQUIRES_PASSWORD) { |
|||
// if no password is required, the API should never be called.
|
|||
// Do not automatically authenticate the user.
|
|||
throw createError({ |
|||
status: 401, |
|||
message: 'Invalid state', |
|||
}); |
|||
} |
|||
|
|||
if (!isPasswordValid(password)) { |
|||
throw createError({ |
|||
status: 401, |
|||
message: 'Incorrect Password', |
|||
}); |
|||
} |
|||
|
|||
const data = await session.update({ |
|||
authenticated: true, |
|||
}); |
|||
|
|||
SERVER_DEBUG(`New Session: ${data.id}`); |
|||
|
|||
return { success: true }; |
|||
} else if (isMethod(event, 'DELETE')) { |
|||
const session = await useSession(event, SESSION_CONFIG); |
|||
const sessionId = session.id; |
|||
|
|||
await session.clear(); |
|||
|
|||
SERVER_DEBUG(`Deleted Session: ${sessionId}`); |
|||
return { success: true }; |
|||
} |
|||
}); |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler((event) => { |
|||
assertMethod(event, 'GET'); |
|||
setHeader(event, 'Content-Type', 'application/json'); |
|||
return `"${UI_CHART_TYPE}"`; |
|||
}); |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler((event) => { |
|||
assertMethod(event, 'GET'); |
|||
setHeader(event, 'Content-Type', 'application/json'); |
|||
return `"${UI_TRAFFIC_STATS}"`; |
|||
}); |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'GET'); |
|||
const config = await WireGuard.backupConfiguration(); |
|||
setHeader(event, 'Content-Disposition', 'attachment; filename="wg0.json"'); |
|||
setHeader(event, 'Content-Type', 'text/json'); |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'PUT'); |
|||
const clientId = getRouterParam(event, 'clientId'); |
|||
if ( |
|||
clientId === '__proto__' || |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'GET'); |
|||
const clientId = getRouterParam(event, 'clientId'); |
|||
const client = await WireGuard.getClient({ clientId }); |
|||
const config = await WireGuard.getClientConfiguration({ clientId }); |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'POST'); |
|||
const clientId = getRouterParam(event, 'clientId'); |
|||
if ( |
|||
clientId === '__proto__' || |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'POST'); |
|||
const clientId = getRouterParam(event, 'clientId'); |
|||
if ( |
|||
clientId === '__proto__' || |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'DELETE'); |
|||
const clientId = getRouterParam(event, 'clientId'); |
|||
await WireGuard.deleteClient({ clientId }); |
|||
return { success: true }; |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'PUT'); |
|||
const clientId = getRouterParam(event, 'clientId'); |
|||
if ( |
|||
clientId === '__proto__' || |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'GET'); |
|||
const clientId = getRouterParam(event, 'clientId'); |
|||
const svg = await WireGuard.getClientQRCodeSVG({ clientId }); |
|||
setHeader(event, 'Content-Type', 'image/svg+xml'); |
@ -0,0 +1,3 @@ |
|||
export default defineEventHandler(() => { |
|||
return WireGuard.getClients(); |
|||
}); |
@ -0,0 +1,5 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
const { name } = await readBody(event); |
|||
await WireGuard.createClient({ name }); |
|||
return { success: true }; |
|||
}); |
@ -1,9 +0,0 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
if (isMethod(event, 'GET')) { |
|||
return WireGuard.getClients(); |
|||
} else if (isMethod(event, 'POST')) { |
|||
const { name } = await readBody(event); |
|||
await WireGuard.createClient({ name }); |
|||
return { success: true }; |
|||
} |
|||
}); |
@ -1,5 +1,4 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
assertMethod(event, 'PUT'); |
|||
const { file } = await readBody(event); |
|||
await WireGuard.restoreConfiguration(file); |
|||
return { success: true }; |
Loading…
Reference in new issue