diff --git a/iol_ion/src/iol_ion/query.clj b/iol_ion/src/iol_ion/query.clj index 60945ce8..b2c2742b 100644 --- a/iol_ion/src/iol_ion/query.clj +++ b/iol_ion/src/iol_ion/query.clj @@ -51,4 +51,9 @@ (range)))) - +(defn can-see-client? [identity client] + (when (not client) + (println "WARNING - permission checking for null client")) + (or (= "admin" (:user/role identity)) + ((set (map :db/id (:user/clients identity))) (:db/id client)) + ((set (map :db/id (:user/clients identity))) client))) diff --git a/resources/datomic/ion-config.edn b/resources/datomic/ion-config.edn index 7f086271..b60df7b4 100644 --- a/resources/datomic/ion-config.edn +++ b/resources/datomic/ion-config.edn @@ -16,5 +16,6 @@ iol-ion.query/localize iol-ion.query/recent-date iol-ion.query/excel-date + iol-ion.query/can-see-client? ] :app-name "iol-cloud"} diff --git a/src/clj/auto_ap/ssr/company/company_1099.clj b/src/clj/auto_ap/ssr/company/company_1099.clj index 7391eb37..91ebf98a 100644 --- a/src/clj/auto_ap/ssr/company/company_1099.clj +++ b/src/clj/auto_ap/ssr/company/company_1099.clj @@ -1,7 +1,8 @@ (ns auto-ap.ssr.company.company-1099 (:require [auto-ap.datomic :refer [conn remove-nils]] - [auto-ap.graphql.utils :refer [can-see-client? is-admin?]] + [auto-ap.graphql.utils :refer [is-admin?]] + [iol-ion.query :refer [can-see-client?]] [auto-ap.shared-views.company.sidebar :refer [company-side-bar]] [auto-ap.ssr-routes :as ssr-routes] [auto-ap.ssr.ui :refer [base-page]] @@ -20,7 +21,7 @@ (let [clients (->> (dc/q '[:find ?c :in $ ?user :where [?c :client/code] - [(auto-ap.graphql.utils/can-see-client? ?user ?c)]] + [(iol-ion.query/can-see-client? ?user ?c)]] (dc/db conn) user) (map first) set) diff --git a/src/clj/auto_ap/ssr/company_dropdown.clj b/src/clj/auto_ap/ssr/company_dropdown.clj index 48af8982..227d5f7a 100644 --- a/src/clj/auto_ap/ssr/company_dropdown.clj +++ b/src/clj/auto_ap/ssr/company_dropdown.clj @@ -1,7 +1,8 @@ (ns auto-ap.ssr.company-dropdown (:require [auto-ap.datomic :refer [conn]] - [auto-ap.graphql.utils :refer [assert-can-see-client can-see-client?]] + [auto-ap.graphql.utils :refer [assert-can-see-client]] + [iol-ion.query :refer [can-see-client?]] [auto-ap.ssr-routes :as ssr-routes] [auto-ap.ssr.components.navbar-dropdown :refer [navbar-dropdown]] [auto-ap.ssr.utils :refer [html-response]] @@ -13,7 +14,7 @@ (let [options (->> (dc/q '[:find ?c ?n :in $ ?user :where [?c :client/name ?n] - [(auto-ap.graphql.utils/can-see-client? ?user ?c)]] + [(iol-ion.query/can-see-client? ?user ?c)]] (dc/db conn) identity) (map (fn [[k v]]