mirror of
https://github.com/penpot/penpot.git
synced 2025-12-11 22:14:05 +01:00
Merge pull request #7865 from penpot/niwinz-staging-audit
✨ Add minor improvements to the audit module
This commit is contained in:
@@ -79,18 +79,6 @@
|
|||||||
(remove #(contains? reserved-props (key %))))
|
(remove #(contains? reserved-props (key %))))
|
||||||
props))
|
props))
|
||||||
|
|
||||||
(defn event-from-rpc-params
|
|
||||||
"Create a base event skeleton with pre-filled some important
|
|
||||||
data that can be extracted from RPC params object"
|
|
||||||
[params]
|
|
||||||
(let [context {:external-session-id (::rpc/external-session-id params)
|
|
||||||
:external-event-origin (::rpc/external-event-origin params)
|
|
||||||
:triggered-by (::rpc/handler-name params)}]
|
|
||||||
{::type "action"
|
|
||||||
::profile-id (::rpc/profile-id params)
|
|
||||||
::ip-addr (::rpc/ip-addr params)
|
|
||||||
::context (d/without-nils context)}))
|
|
||||||
|
|
||||||
(defn get-external-session-id
|
(defn get-external-session-id
|
||||||
[request]
|
[request]
|
||||||
(when-let [session-id (yreq/get-header request "x-external-session-id")]
|
(when-let [session-id (yreq/get-header request "x-external-session-id")]
|
||||||
@@ -99,13 +87,24 @@
|
|||||||
(str/blank? session-id))
|
(str/blank? session-id))
|
||||||
session-id)))
|
session-id)))
|
||||||
|
|
||||||
(defn- get-external-event-origin
|
(defn- get-client-event-origin
|
||||||
[request]
|
[request]
|
||||||
(when-let [origin (yreq/get-header request "x-event-origin")]
|
(when-let [origin (yreq/get-header request "x-event-origin")]
|
||||||
(when-not (or (> (count origin) 256)
|
(when-not (or (= origin "null")
|
||||||
(= origin "null")
|
|
||||||
(str/blank? origin))
|
(str/blank? origin))
|
||||||
origin)))
|
(str/prune origin 200))))
|
||||||
|
|
||||||
|
(defn get-client-user-agent
|
||||||
|
[request]
|
||||||
|
(when-let [user-agent (yreq/get-header request "user-agent")]
|
||||||
|
(str/prune user-agent 500)))
|
||||||
|
|
||||||
|
(defn- get-client-version
|
||||||
|
[request]
|
||||||
|
(when-let [origin (yreq/get-header request "x-frontend-version")]
|
||||||
|
(when-not (or (= origin "null")
|
||||||
|
(str/blank? origin))
|
||||||
|
(str/prune origin 100))))
|
||||||
|
|
||||||
;; --- SPECS
|
;; --- SPECS
|
||||||
|
|
||||||
@@ -134,6 +133,33 @@
|
|||||||
(def ^:private check-event
|
(def ^:private check-event
|
||||||
(sm/check-fn schema:event))
|
(sm/check-fn schema:event))
|
||||||
|
|
||||||
|
(defn- prepare-context-from-request
|
||||||
|
[request]
|
||||||
|
(let [client-event-origin (get-client-event-origin request)
|
||||||
|
client-version (get-client-version request)
|
||||||
|
client-user-agent (get-client-user-agent request)
|
||||||
|
session-id (get-external-session-id request)
|
||||||
|
token-id (::actoken/id request)]
|
||||||
|
(d/without-nils
|
||||||
|
{:external-session-id session-id
|
||||||
|
:access-token-id (some-> token-id str)
|
||||||
|
:client-event-origin client-event-origin
|
||||||
|
:client-user-agent client-user-agent
|
||||||
|
:client-version client-version
|
||||||
|
:version (:full cf/version)})))
|
||||||
|
|
||||||
|
(defn event-from-rpc-params
|
||||||
|
"Create a base event skeleton with pre-filled some important
|
||||||
|
data that can be extracted from RPC params object"
|
||||||
|
[params]
|
||||||
|
(let [context (some-> params meta ::http/request prepare-context-from-request)
|
||||||
|
event {::type "action"
|
||||||
|
::profile-id (or (::rpc/profile-id params) uuid/zero)
|
||||||
|
::ip-addr (::rpc/ip-addr params)}]
|
||||||
|
(cond-> event
|
||||||
|
(some? context)
|
||||||
|
(assoc ::context context))))
|
||||||
|
|
||||||
(defn prepare-event
|
(defn prepare-event
|
||||||
[cfg mdata params result]
|
[cfg mdata params result]
|
||||||
(let [resultm (meta result)
|
(let [resultm (meta result)
|
||||||
@@ -148,18 +174,10 @@
|
|||||||
(merge (::props resultm))
|
(merge (::props resultm))
|
||||||
(dissoc :profile-id)
|
(dissoc :profile-id)
|
||||||
(dissoc :type)))
|
(dissoc :type)))
|
||||||
|
|
||||||
(clean-props))
|
(clean-props))
|
||||||
|
|
||||||
token-id (::actoken/id request)
|
context (merge (::context resultm)
|
||||||
context (-> (::context resultm)
|
(prepare-context-from-request request))
|
||||||
(assoc :external-session-id
|
|
||||||
(get-external-session-id request))
|
|
||||||
(assoc :external-event-origin
|
|
||||||
(get-external-event-origin request))
|
|
||||||
(assoc :access-token-id (some-> token-id str))
|
|
||||||
(d/without-nils))
|
|
||||||
|
|
||||||
ip-addr (inet/parse-request request)]
|
ip-addr (inet/parse-request request)]
|
||||||
|
|
||||||
{::type (or (::type resultm)
|
{::type (or (::type resultm)
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
[]
|
[]
|
||||||
(let [uagent (new ua/UAParser)]
|
(let [uagent (new ua/UAParser)]
|
||||||
(merge
|
(merge
|
||||||
{:app-version (:full cf/version)
|
{:version (:full cf/version)
|
||||||
:locale @i18n/locale}
|
:locale @i18n/locale}
|
||||||
(let [browser (.getBrowser uagent)]
|
(let [browser (.getBrowser uagent)]
|
||||||
{:browser (obj/get browser "name")
|
{:browser (obj/get browser "name")
|
||||||
|
|||||||
Reference in New Issue
Block a user