From 3a6876eeec3616aaaddefc7d208deb0dfc7c879f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 5 Sep 2022 15:53:19 +0200 Subject: [PATCH] :sparkles: Disallow to view a file with components-v2 --- backend/src/app/rpc/queries/viewer.clj | 1 + frontend/src/app/main/data/viewer.cljs | 18 +++++++++++++++--- frontend/src/app/util/router.cljs | 5 +++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/backend/src/app/rpc/queries/viewer.clj b/backend/src/app/rpc/queries/viewer.clj index e60a5e3b4..0312da21c 100644 --- a/backend/src/app/rpc/queries/viewer.clj +++ b/backend/src/app/rpc/queries/viewer.clj @@ -45,6 +45,7 @@ (s/def ::file-id ::us/uuid) (s/def ::profile-id ::us/uuid) (s/def ::share-id ::us/uuid) +(s/def ::components-v2 ::us/boolean) (s/def ::view-only-bundle (s/keys :req-un [::file-id] :opt-un [::profile-id ::share-id ::components-v2])) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index 1f10b7007..404295f8c 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -15,9 +15,12 @@ [app.common.types.shape.interactions :as ctsi] [app.main.data.comments :as dcm] [app.main.data.fonts :as df] + [app.main.data.modal :as modal] [app.main.features :as features] [app.main.repo :as rp] + [app.main.store :as st] [app.util.globals :as ug] + [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [beicon.core :as rx] [cljs.spec.alpha :as s] @@ -117,9 +120,18 @@ (->> (rp/query! :view-only-bundle params') (rx/mapcat - (fn [{:keys [fonts] :as bundle}] - (rx/of (df/fonts-fetched fonts) - (bundle-fetched (merge bundle params)))))))))) + (fn [{:keys [fonts] :as bundle}] + (->> (rx/of (df/fonts-fetched fonts) + (bundle-fetched (merge bundle params)))))) + (rx/catch (fn [err] + (let [team-id (-> state :teams keys first)] + (if (and (= (:type err) :restriction) + (= (:code err) :feature-disabled)) + (rx/of (modal/show + {:type :alert + :message (tr "errors.components-v2") + :on-accept #(st/emit! (rt/nav ""))})) + (rx/throw err)))))))))) (declare go-to-frame-auto) diff --git a/frontend/src/app/util/router.cljs b/frontend/src/app/util/router.cljs index 21a89434c..e10a24be2 100644 --- a/frontend/src/app/util/router.cljs +++ b/frontend/src/app/util/router.cljs @@ -27,8 +27,9 @@ ([router id] (resolve router id {} {})) ([router id path-params] (resolve router id path-params {})) ([router id path-params query-params] - (when-let [match (r/match-by-name router id path-params)] - (r/match->path match query-params)))) + (if-let [match (r/match-by-name router id path-params)] + (r/match->path match query-params) + ""))) (defn create [routes]