From 6cc12528b319dd5cb8e943e1d6f21a3ef5537ece Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Tue, 18 Dec 2018 13:55:46 -0800 Subject: [PATCH] fixed some old TODOs --- app/controller.js | 1 - app/fxa.js | 3 ++- app/metrics.js | 1 - app/serviceWorker.js | 2 +- app/user.js | 2 +- server/config.js | 5 +++++ server/fxa.js | 3 ++- server/routes/filelist.js | 2 +- server/storage/index.js | 4 +++- 9 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/controller.js b/app/controller.js index f0d9dd4d..e95f125e 100644 --- a/app/controller.js +++ b/app/controller.js @@ -58,7 +58,6 @@ export default function(state, emitter) { emitter.on('changeLimit', async ({ file, value }) => { const ok = await file.changeLimit(value, state.user); if (!ok) { - // TODO return; } state.storage.writeFile(file); diff --git a/app/fxa.js b/app/fxa.js index 15dece38..7827d33e 100644 --- a/app/fxa.js +++ b/app/fxa.js @@ -1,3 +1,4 @@ +/* global AUTH_CONFIG */ import { arrayToB64, b64ToArray } from './utils'; const encoder = new TextEncoder(); @@ -175,6 +176,6 @@ export async function deriveFileListKey(ikm) { export async function getFileListKey(storage, bundle) { const jwks = await decryptBundle(storage, bundle); - const jwk = jwks['https://identity.mozilla.com/apps/send']; + const jwk = jwks[AUTH_CONFIG.key_scope]; return deriveFileListKey(jwk.k); } diff --git a/app/metrics.js b/app/metrics.js index bc6783f2..1f3c25db 100644 --- a/app/metrics.js +++ b/app/metrics.js @@ -27,7 +27,6 @@ export default function initialize(state, emitter) { cm6: storage.files.length, cm7: storage.totalDownloads }); - //TODO restart handlers... somewhere }); emitter.on('exit', exitEvent); emitter.on('experiment', experimentEvent); diff --git a/app/serviceWorker.js b/app/serviceWorker.js index a54835d2..cc709bab 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -112,7 +112,7 @@ self.onfetch = event => { const req = event.request; if (req.method !== 'GET') return; const url = new URL(req.url); - const dlmatch = DOWNLOAD_URL.exec(url.pathname); // TODO use #hashkey + const dlmatch = DOWNLOAD_URL.exec(url.pathname); if (dlmatch) { event.respondWith(decryptStream(dlmatch[1])); } else if (VERSIONED_ASSET.test(url.pathname)) { diff --git a/app/user.js b/app/user.js index bcd15340..ab578e5d 100644 --- a/app/user.js +++ b/app/user.js @@ -73,7 +73,7 @@ export default class User { code_challenge, code_challenge_method: 'S256', response_type: 'code', - scope: 'profile https://identity.mozilla.com/apps/send', //TODO param + scope: `profile ${AUTH_CONFIG.key_scope}`, state, keys_jwk }; diff --git a/server/config.js b/server/config.js index da0e09e0..5a037544 100644 --- a/server/config.js +++ b/server/config.js @@ -134,6 +134,11 @@ const conf = convict({ format: String, default: '', // disabled env: 'FXA_CLIENT_ID' + }, + fxa_key_scope: { + format: String, + default: 'https://identity.mozilla.com/apps/send', + env: 'FXA_KEY_SCOPE' } }); diff --git a/server/fxa.js b/server/fxa.js index 84a13fd4..9e398f32 100644 --- a/server/fxa.js +++ b/server/fxa.js @@ -1,7 +1,7 @@ const fetch = require('node-fetch'); const config = require('./config'); -const KEY_SCOPE = 'https://identity.mozilla.com/apps/send'; +const KEY_SCOPE = config.fxa_key_scope; let fxaConfig = null; let lastConfigRefresh = 0; @@ -14,6 +14,7 @@ async function getFxaConfig() { { timeout: 3000 } ); fxaConfig = await res.json(); + fxaConfig.key_scope = KEY_SCOPE; lastConfigRefresh = Date.now(); return fxaConfig; } diff --git a/server/routes/filelist.js b/server/routes/filelist.js index 8f276595..44c30f73 100644 --- a/server/routes/filelist.js +++ b/server/routes/filelist.js @@ -35,7 +35,7 @@ module.exports = { await storage.set( id(req.user), fileStream, - { n: 'a' }, //TODO + null, config.max_expire_seconds ); res.sendStatus(200); diff --git a/server/storage/index.js b/server/storage/index.js index bd8aeca2..1c80f26c 100644 --- a/server/storage/index.js +++ b/server/storage/index.js @@ -52,7 +52,9 @@ class DB { const filePath = `${prefix}-${id}`; await this.storage.set(filePath, file); this.redis.hset(id, 'prefix', prefix); - this.redis.hmset(id, meta); + if (meta) { + this.redis.hmset(id, meta); + } this.redis.expire(id, expireSeconds); }