Selaa lähdekoodia

sort keys and remove timestamp to ensure same barcode hash same hash

Daniel Sheffield 4 kuukautta sitten
vanhempi
säilyke
bd6a38497d
3 muutettua tiedostoa jossa 7 lisäystä ja 2 poistoa
  1. 2 0
      rest/pyapi.py
  2. 5 0
      util-sqlpage/code.sql
  3. 0 2
      util-sqlpage/code/Index.sql

+ 2 - 0
rest/pyapi.py

@@ -82,6 +82,8 @@ def get_hash(route):
         data = parse_data_uri(data)
         assert data['encoding'] == 'base64', f"unsupported encoding: {data['encoding']}"
         data = b64decode(data['data'] + '==')
+    elif route == 'code':
+        data = dumps(load(body['data']), sort_keys=True)
     else:
         data = data.encode('utf-8')
 

+ 5 - 0
util-sqlpage/code.sql

@@ -1,3 +1,8 @@
 SET ":has_post_params" = (SELECT 1 FROM json_each(sqlpage.variables('post')) LIMIT 1);
+SET ":content" = (SELECT json_patch(sqlpage.variables('post'), '{
+    "has_post_params": null,
+    "inner": null,
+    "timestamp": null
+}'));
 SET ":inner" = 'code/Index.sql';
 SELECT 'dynamic' AS component, sqlpage.run_sql('code/entry.sql') AS properties;

+ 0 - 2
util-sqlpage/code/Index.sql

@@ -1,5 +1,3 @@
-SET ":content" = (SELECT sqlpage.variables('post'));
-
 SET ":inner" = CASE :has_post_params
   WHEN 1 THEN CASE COALESCE($hash, '')
     WHEN '' THEN 'code/save.sql'