diff --git a/src/clj/auto_ap/handler.clj b/src/clj/auto_ap/handler.clj index df2c97ac..b01055de 100644 --- a/src/clj/auto_ap/handler.clj +++ b/src/clj/auto_ap/handler.clj @@ -197,13 +197,14 @@ (map :db/id ) set) - client-ids (if (set? limited-clients) + client-ids (if (= "admin" (:user/role identity)) + ideal-ids (set/intersection ideal-ids - limited-clients) - ideal-ids) - clients (pull-many (dc/db conn) - d-clients/full-read - client-ids)] + (or limited-clients #{}))) + clients (some->> client-ids + seq + (pull-many (dc/db conn) + d-clients/full-read))] (lc/with-context {:clients (map :client/code clients)} (handler (assoc request :clients clients @@ -214,10 +215,16 @@ [handler] (fn [{:keys [headers identity] :as request}] (let [x-clients (edn/read-string (get headers "x-clients")) - _ (when-let [client-id (and x-clients - (sequential? x-clients) - (first x-clients))] - (assert-can-see-client identity client-id)) + x-clients (try (if-let [client-id (and x-clients + (sequential? x-clients) + (first x-clients))] + (do + (assert-can-see-client identity client-id) + [client-id]) + x-clients) + (catch Exception e + (alog/warn ::cant-access :error e) + :all)) new-request (if x-clients (assoc-in request [:session :client-selection] x-clients) request)]