Browse Source

fixed some old TODOs

Danny Coates 6 years ago
parent
commit
6cc12528b3
9 changed files with 15 additions and 8 deletions
  1. 0 1
      app/controller.js
  2. 2 1
      app/fxa.js
  3. 0 1
      app/metrics.js
  4. 1 1
      app/serviceWorker.js
  5. 1 1
      app/user.js
  6. 5 0
      server/config.js
  7. 2 1
      server/fxa.js
  8. 1 1
      server/routes/filelist.js
  9. 3 1
      server/storage/index.js

+ 0 - 1
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);

+ 2 - 1
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);
 }

+ 0 - 1
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);

+ 1 - 1
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)) {

+ 1 - 1
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
     };

+ 5 - 0
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'
   }
 });
 

+ 2 - 1
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;
 }

+ 1 - 1
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);

+ 3 - 1
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);
   }