mirror of https://github.com/wg-easy/wg-easy
11 changed files with 107 additions and 5 deletions
@ -0,0 +1,9 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
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'); |
||||
|
return config; |
||||
|
}) |
@ -1,5 +0,0 @@ |
|||||
import WireGuard from "~/utils/WireGuard"; |
|
||||
|
|
||||
export default defineEventHandler(() => { |
|
||||
return WireGuard.getClients(); |
|
||||
}) |
|
@ -0,0 +1,12 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
export default defineEventHandler(async (event) => { |
||||
|
assertMethod(event, "PUT"); |
||||
|
const clientId = getRouterParam(event, 'clientId'); |
||||
|
if (clientId === '__proto__' || clientId === 'constructor' || clientId === 'prototype') { |
||||
|
throw createError({ status: 403 }); |
||||
|
} |
||||
|
const { address } = await readBody(event); |
||||
|
await WireGuard.updateClientAddress({ clientId, address }); |
||||
|
return { success: true }; |
||||
|
}) |
@ -0,0 +1,16 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
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 }); |
||||
|
const configName = client.name |
||||
|
.replace(/[^a-zA-Z0-9_=+.-]/g, '-') |
||||
|
.replace(/(-{2,}|-$)/g, '-') |
||||
|
.replace(/-$/, '') |
||||
|
.substring(0, 32); |
||||
|
setHeader(event, 'Content-Disposition', `attachment; filename="${configName || clientId}.conf"`); |
||||
|
setHeader(event, 'Content-Type', 'text/plain'); |
||||
|
return config; |
||||
|
}) |
@ -0,0 +1,11 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
export default defineEventHandler(async (event) => { |
||||
|
assertMethod(event, "POST"); |
||||
|
const clientId = getRouterParam(event, 'clientId'); |
||||
|
if (clientId === '__proto__' || clientId === 'constructor' || clientId === 'prototype') { |
||||
|
throw createError({ status: 403 }); |
||||
|
} |
||||
|
await WireGuard.disableClient({ clientId }); |
||||
|
return { success: true }; |
||||
|
}) |
@ -0,0 +1,11 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
export default defineEventHandler(async (event) => { |
||||
|
assertMethod(event, "POST"); |
||||
|
const clientId = getRouterParam(event, 'clientId'); |
||||
|
if (clientId === '__proto__' || clientId === 'constructor' || clientId === 'prototype') { |
||||
|
throw createError({ status: 403 }); |
||||
|
} |
||||
|
await WireGuard.enableClient({ clientId }); |
||||
|
return { success: true }; |
||||
|
}) |
@ -0,0 +1,8 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
export default defineEventHandler(async (event) => { |
||||
|
assertMethod(event, "DELETE"); |
||||
|
const clientId = getRouterParam(event, 'clientId'); |
||||
|
await WireGuard.deleteClient({ clientId }); |
||||
|
return { success: true }; |
||||
|
}); |
@ -0,0 +1,12 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
export default defineEventHandler(async (event) => { |
||||
|
assertMethod(event, "PUT"); |
||||
|
const clientId = getRouterParam(event, 'clientId'); |
||||
|
if (clientId === '__proto__' || clientId === 'constructor' || clientId === 'prototype') { |
||||
|
throw createError({ status: 403 }); |
||||
|
} |
||||
|
const { name } = await readBody(event); |
||||
|
await WireGuard.updateClientName({ clientId, name }); |
||||
|
return { success: true }; |
||||
|
}) |
@ -0,0 +1,9 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
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'); |
||||
|
return svg; |
||||
|
}) |
@ -0,0 +1,11 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
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 }; |
||||
|
} |
||||
|
}) |
@ -0,0 +1,8 @@ |
|||||
|
import WireGuard from "~/utils/WireGuard"; |
||||
|
|
||||
|
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