Should fix most of the authentication issues

This commit is contained in:
2023-09-05 23:08:22 -07:00
parent a6e4080746
commit a56d3b0b84
22 changed files with 506 additions and 179 deletions

View File

@@ -53,7 +53,8 @@
(defn get-transaction-page [context args _]
(let [args (assoc (:filters args)
:clients (:clients context))
:clients (:clients context)
:id (:id context))
_ (assert-filtered-enough args)
[transactions transactions-count] (d-transactions/get-graphql (update (<-graphql args) :approval-status enum->keyword "transaction-approval-status"))
transactions (map ->graphql (map approval-status->graphql transactions))]

View File

@@ -5,10 +5,12 @@
[auto-ap.time :as atime]
[buddy.auth :refer [throw-unauthorized]]
[datomic.api :as dc]
[iol-ion.query :refer [entid]]
[clojure.walk :as walk]
[com.walmartlabs.lacinia.util :refer [attach-resolvers]]
[clojure.tools.logging :as log]
[com.brunobonacci.mulog :as mu]))
[com.brunobonacci.mulog :as mu]
[clojure.set :as set]))
(defn snake->kebab [s]
@@ -163,6 +165,29 @@
resolver-key (trace-query resolver-key resolver-fn))
)
{}
m))
m)))
)
(defn extract-client-ids [user-clients & possible-clients]
(let [coerce-client-ids (fn coerce-client-ids [x]
(cond (and (map? x)
(:db/id x))
[(:db/id x)]
(nat-int? x)
[x]
(and (vector? x)
(= :client/code (first x)))
[(entid (dc/db conn) x)]
(sequential? x)
(map x coerce-client-ids)
:else
[]))
user-client-ids (set (mapcat coerce-client-ids user-clients))
extra-client-ids (set (mapcat coerce-client-ids possible-clients))]
(if (seq extra-client-ids)
(set/intersection user-client-ids extra-client-ids)
user-client-ids)))