mirror of
https://github.com/logseq/logseq.git
synced 2026-02-01 22:47:36 +00:00
fix: can't download invited graph
This commit is contained in:
@@ -351,6 +351,11 @@
|
||||
(assert (and k @e2ee-store))
|
||||
(idb-keyval/set k value @e2ee-store))
|
||||
|
||||
(defn- <clear-item!
|
||||
[k]
|
||||
(assert (and k @e2ee-store))
|
||||
(idb-keyval/del k @e2ee-store))
|
||||
|
||||
(defn e2ee-base
|
||||
[]
|
||||
(http-base-url))
|
||||
@@ -471,10 +476,12 @@
|
||||
|
||||
(defn <fetch-graph-aes-key-for-download
|
||||
[repo graph-id]
|
||||
(let [base (e2ee-base)]
|
||||
(let [base (e2ee-base)
|
||||
aes-key-k (graph-encrypted-aes-key-idb-key graph-id)]
|
||||
(when-not (and (string? base) (string? graph-id))
|
||||
(fail-fast :db-sync/missing-field {:base base :graph-id graph-id}))
|
||||
(p/let [{:keys [public-key encrypted-private-key]} (<fetch-user-rsa-key-pair-raw base)]
|
||||
(<clear-item! aes-key-k)
|
||||
(when-not (and (string? public-key) (string? encrypted-private-key))
|
||||
(fail-fast :db-sync/missing-field {:graph-id graph-id :field :user-rsa-key-pair}))
|
||||
(p/let [private-key (<decrypt-private-key encrypted-private-key)
|
||||
@@ -487,12 +494,12 @@
|
||||
(when-not encrypted-aes-key
|
||||
(fail-fast :db-sync/missing-field {:graph-id graph-id :field :encrypted-aes-key}))
|
||||
(when (and encrypted-aes-key (nil? local-encrypted))
|
||||
(<set-item! (graph-encrypted-aes-key-idb-key graph-id) encrypted-aes-key))
|
||||
(<set-item! aes-key-k encrypted-aes-key))
|
||||
(p/let [aes-key (crypt/<decrypt-aes-key private-key encrypted-aes-key)]
|
||||
(swap! *repo->aes-key assoc repo aes-key)
|
||||
aes-key)))))
|
||||
|
||||
(defn- <grant-graph-access!
|
||||
(defn <grant-graph-access!
|
||||
[repo graph-id target-email]
|
||||
(if-not (graph-e2ee? repo)
|
||||
(p/resolved nil)
|
||||
@@ -522,10 +529,6 @@
|
||||
{:response-schema :e2ee/grant-access})]
|
||||
nil))))))
|
||||
|
||||
(defn grant-graph-access!
|
||||
[repo graph-id target-email]
|
||||
(<grant-graph-access! repo graph-id target-email))
|
||||
|
||||
(defn- <encrypt-text-value
|
||||
[aes-key value]
|
||||
(assert (string? value) (str "encrypting value should be a string, value: " value))
|
||||
|
||||
@@ -423,7 +423,7 @@
|
||||
|
||||
(def-thread-api :thread-api/db-sync-grant-graph-access
|
||||
[repo graph-id target-email]
|
||||
(db-sync/grant-graph-access! repo graph-id target-email))
|
||||
(db-sync/<grant-graph-access! repo graph-id target-email))
|
||||
|
||||
(def-thread-api :thread-api/db-sync-ensure-user-rsa-keys
|
||||
[]
|
||||
@@ -643,10 +643,10 @@
|
||||
(def-thread-api :thread-api/db-sync-import-kvs-rows
|
||||
[repo rows reset? graph-id remote-tx]
|
||||
(p/let [_ (when reset? (close-db! repo))
|
||||
db (ensure-db-sync-import-db! repo reset?)
|
||||
aes-key (db-sync/<fetch-graph-aes-key-for-download repo graph-id)
|
||||
_ (when (nil? aes-key)
|
||||
(db-sync/fail-fast :db-sync/missing-field {:repo repo :field :aes-key}))
|
||||
db (ensure-db-sync-import-db! repo reset?)
|
||||
batches (medley/indexed (partition-all 100 rows))]
|
||||
(rtc-log-and-state/rtc-log :rtc.log/download
|
||||
{:sub-type :download-progress
|
||||
|
||||
Reference in New Issue
Block a user