0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-11 07:11:32 -05:00

Forward external session id to backend

This commit is contained in:
Andrey Antukh 2024-06-18 20:57:45 +02:00
parent 5eee1cdbf3
commit 00b4013385
4 changed files with 21 additions and 8 deletions

View file

@ -141,6 +141,7 @@
(::rpc/profile-id params)
uuid/zero)
session-id (rreq/get-header request "x-external-session-id")
props (-> (or (::replace-props resultm)
(-> params
(merge (::props resultm))
@ -150,8 +151,10 @@
(clean-props))
token-id (::actoken/id request)
context (d/without-nils
{:access-token-id (some-> token-id str)})]
context (-> (::context resultm)
(assoc :external-session-id session-id)
(assoc :access-token-id (some-> token-id str))
(d/without-nils))]
{::type (or (::type resultm)
(::rpc/type cfg))

View file

@ -130,9 +130,16 @@
(def worker-uri
(obj/get global "penpotWorkerURI" "/js/worker.js"))
(defn external-feature-flag [flag value]
(when-let [fn (obj/get global "externalFeatureFlag")]
(fn flag value)))
(defn external-feature-flag
[flag value]
(let [f (obj/get global "externalFeatureFlag")]
(when (fn? f)
(f flag value))))
(defn external-session-id
[]
(let [f (obj/get global "externalSessionId")]
(when (fn? f) (f))))
;; --- Helper Functions

View file

@ -168,7 +168,7 @@
ptk/EffectEvent
(effect [_ _ stream]
(let [session (atom nil)
stopper (rx/filter (ptk/type? ::initialize) stream)
stopper (rx/filter (ptk/type? ::initialize) stream)
buffer (atom #queue [])
profile (->> (rx/from-atom storage {:emit-current-value? true})
(rx/map :profile)
@ -213,7 +213,9 @@
(let [session* (or @session (dt/now))
context (-> @context
(merge (:context event))
(assoc :session session*))]
(assoc :session session*)
(assoc :external-session-id (cf/external-session-id))
(d/without-nils))]
(reset! session session*)
(-> event
(assoc :timestamp (dt/now))

View file

@ -97,7 +97,8 @@
request {:method method
:uri (u/join cf/public-uri "api/rpc/command/" nid)
:credentials "include"
:headers {"accept" "application/transit+json,text/event-stream,*/*"}
:headers {"accept" "application/transit+json,text/event-stream,*/*"
"x-external-session-id" (cf/external-session-id)}
:body (when (= method :post)
(if form-data?
(http/form-data params)