05c655ede9
* fix(ui):Error pops up when enabling disabled client Action is prevented and a clear message is displayed in Web UI * fix formatting * fix type issue * fix formatting --------- Co-authored-by: Bernd Storath <999999bst@gmail.com>
33 lines
867 B
TypeScript
33 lines
867 B
TypeScript
import { ClientGetSchema } from '#db/repositories/client/types';
|
|
|
|
export default definePermissionEventHandler(
|
|
'clients',
|
|
'update',
|
|
async ({ event, checkPermissions }) => {
|
|
const { clientId } = await getValidatedRouterParams(
|
|
event,
|
|
validateZod(ClientGetSchema, event)
|
|
);
|
|
|
|
const client = await Database.clients.get(clientId);
|
|
checkPermissions(client);
|
|
|
|
if (
|
|
client &&
|
|
client.expiresAt !== null &&
|
|
new Date() > new Date(client.expiresAt)
|
|
) {
|
|
throw createError({
|
|
statusCode: 422,
|
|
statusMessage:
|
|
'Client is expired. Please update the expiration date first.',
|
|
message: 'Client is expired. Please update the expiration date first.',
|
|
});
|
|
}
|
|
|
|
await Database.clients.toggle(clientId, true);
|
|
await WireGuard.saveConfig();
|
|
return { success: true };
|
|
}
|
|
);
|