Restrict tags format

This commit is contained in:
Shweelan Samson authored and Zaid Abdulla committed 2019-06-05 00:17:36 -07:00
1 parent 83de65f913
commit 6c60ce6457
2 files changed
+18 -4

No files matched your search

+8 -1
View File
@@ -483,7 +483,14 @@ router.post("/devices/:id/tags", async (ctx, next) => {
return void (ctx.status = 403); 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); logger.accessInfo(log);
+10 -3
View File
@@ -211,9 +211,16 @@ export function updateDeviceTags(deviceId, tags): Promise<void> {
const add = []; const add = [];
const pull = []; const pull = [];
for (const [tag, onOff] of Object.entries(tags)) { const regex = /^[0-9a-zA-Z_]+$/;
if (onOff) add.push(tag); for (let [tag, onOff] of Object.entries(tags)) {
else pull.push(tag); 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() getClient()
.then(client => { .then(client => {