diff --git a/resources/sql/queries.sql b/resources/sql/queries.sql index 40b815d..ff0f3b5 100644 --- a/resources/sql/queries.sql +++ b/resources/sql/queries.sql @@ -79,7 +79,7 @@ AND visits.id = :id -- :name list-roles-by-canvasser :? :* -- :doc links all existing canvasser records related to a given role -SELECT roles.* +SELECT DISTINCT roles.* FROM roles, ln_canvassers_roles WHERE roles.id = ln_canvassers_roles.role_id AND ln_canvassers_roles.canvasser_id = :id diff --git a/src/clj/youyesyet/routes/roles.clj b/src/clj/youyesyet/routes/roles.clj index 7f7ba3d..39a5946 100644 --- a/src/clj/youyesyet/routes/roles.clj +++ b/src/clj/youyesyet/routes/roles.clj @@ -24,13 +24,14 @@ user (db-core/list-roles-by-canvasser db-core/*db* {:id (:id user)}))] (log/info (str "Roles routing page; user is " user "; roles are " roles)) - (cond - roles (layout/render "roles.html" - {:title (str "Welcome " (:fullname user) ", what do you want to do?") - :user user - :roles (map #(assoc % :link (safe-name (:name %) :sql)) roles)}) - (empty? roles)(response/found "/app") - true (assoc (response/found "/login") :session (dissoc session :user))))) + (if + roles + (layout/render + "roles.html" + {:title (str "Welcome " (:fullname user) ", what do you want to do?") + :user user + :roles (map #(assoc % :link (safe-name (:name %) :sql)) roles)}) + (assoc (response/found "/login") :session (dissoc session :user))))) (defn admins-page