Restrict tags format
This commit is contained in:
1 parent
83de65f913
commit
6c60ce6457
2 files changed
+18
-4
No files matched your search
+8
-1
@@ -483,7 +483,14 @@ router.post("/devices/:id/tags", async (ctx, next) => {
|
||||
return void (ctx.status = 403);
|
||||
}
|
||||
|
||||
await db.updateDeviceTags(ctx.params.id, ctx.request.body);
|
||||
try {
|
||||
await db.updateDeviceTags(ctx.params.id, ctx.request.body);
|
||||
} catch (error) {
|
||||
log.message += " failed";
|
||||
logger.accessWarn(log);
|
||||
ctx.body = error.message;
|
||||
return void (ctx.status = 400);
|
||||
}
|
||||
|
||||
logger.accessInfo(log);
|
||||
|
||||
|
||||
+10
-3
@@ -211,9 +211,16 @@ export function updateDeviceTags(deviceId, tags): Promise<void> {
|
||||
const add = [];
|
||||
const pull = [];
|
||||
|
||||
for (const [tag, onOff] of Object.entries(tags)) {
|
||||
if (onOff) add.push(tag);
|
||||
else pull.push(tag);
|
||||
const regex = /^[0-9a-zA-Z_]+$/;
|
||||
for (let [tag, onOff] of Object.entries(tags)) {
|
||||
tag = tag.trim();
|
||||
if (onOff) {
|
||||
if (!tag.match(regex))
|
||||
return void reject(new Error(`Invalid tag '${tag}'`));
|
||||
add.push(tag);
|
||||
} else {
|
||||
pull.push(tag);
|
||||
}
|
||||
}
|
||||
getClient()
|
||||
.then(client => {
|
||||
|
||||
Reference in new issue
Block a user