diff --git a/src/clj/collect_earth_online/db/projects.clj b/src/clj/collect_earth_online/db/projects.clj index fd3bfc797..34a56d88c 100644 --- a/src/clj/collect_earth_online/db/projects.clj +++ b/src/clj/collect_earth_online/db/projects.clj @@ -152,8 +152,15 @@ (defn get-project-by-id [{:keys [params session]}] (let [user-id (:userId session -1) - project-id (tc/val->int (:projectId params))] - (data-response (build-project-by-id user-id project-id)))) + project-id (tc/val->int (:projectId params)) + project (build-project-by-id user-id project-id)] + (if (or (:isProjectAdmin project) + (and (= (:availability project) "published") + (or (= (:privacyLevel project) "public") + (and (pos? user-id) (= (:privacyLevel project) "users")) + (and (:userRole project) (= (:privacyLevel project) "institution"))))) + (data-response project) + (data-response "" {:status 403})))) (defn get-template-by-id [{:keys [params]}] (let [project-id (tc/val->int (:projectId params))