Auto-redirect from app to login on 403
This commit is contained in:
parent
388bb3fb7d
commit
23591952b8
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -87,8 +87,9 @@ ORDER BY roles.name,
|
||||||
roles.id
|
roles.id
|
||||||
|
|
||||||
-- :name list-elector-intentions :? :*
|
-- :name list-elector-intentions :? :*
|
||||||
-- :doc short form of `list-intentions-by-elector`, returning far less data,
|
-- :doc short form of `list-intentions-by-elector`, returning far less data, for use in `youyesyet.routes.rest/get-local-data`, q.v.
|
||||||
-- for use in `youyesyet.routes.rest/get-local-data`, q.v.
|
-- TODO: should be limited to visits in the past 24 hours, to prevent the app being
|
||||||
|
-- used to harrass NO voters. See https://github.com/simon-brooke/youyesyet/issues/58
|
||||||
SELECT intentions.id, intentions.option_id, visits.date
|
SELECT intentions.id, intentions.option_id, visits.date
|
||||||
FROM intentions, visits
|
FROM intentions, visits
|
||||||
WHERE intentions.visit_id = visits.id
|
WHERE intentions.visit_id = visits.id
|
||||||
|
|
|
@ -1,4 +1 @@
|
||||||
(ns ^{:doc "Field-level authorisation. Messy."
|
|
||||||
:author "Simon Brooke"}
|
|
||||||
youyesyet.authorisation
|
|
||||||
(:require [youyesyet.env :refer [defaults]]))
|
|
||||||
|
|
|
@ -51,6 +51,16 @@
|
||||||
:anchor nil))
|
:anchor nil))
|
||||||
|
|
||||||
|
|
||||||
|
(defn handle-forbidden
|
||||||
|
"If response has status 403 (forbidden) redirect to the login page."
|
||||||
|
[response & forms]
|
||||||
|
(if
|
||||||
|
(= (str (:status response)) "403")
|
||||||
|
(do
|
||||||
|
(js/console.log "Forbidden! redirecting")
|
||||||
|
(set! (.-location js/document) "/login"))
|
||||||
|
(apply 'do forms)))
|
||||||
|
|
||||||
(defn compose-packet
|
(defn compose-packet
|
||||||
[item]
|
[item]
|
||||||
"Convert this `item` into a URI which can be sent as a GET call"
|
"Convert this `item` into a URI which can be sent as a GET call"
|
||||||
|
@ -197,10 +207,12 @@
|
||||||
;; TODO: signal something has failed? It doesn't matter very much, unless it keeps failing.
|
;; TODO: signal something has failed? It doesn't matter very much, unless it keeps failing.
|
||||||
(js/console.log (str "Failed to fetch locality data" response))
|
(js/console.log (str "Failed to fetch locality data" response))
|
||||||
;; loop to do it again
|
;; loop to do it again
|
||||||
|
(handle-forbidden
|
||||||
|
response
|
||||||
(dispatch [:dispatch-later [{:ms 60000 :dispatch [:fetch-locality]}]])
|
(dispatch [:dispatch-later [{:ms 60000 :dispatch [:fetch-locality]}]])
|
||||||
{:db (assoc
|
{:db (assoc
|
||||||
(remove-from-feedback db :fetch-locality)
|
(remove-from-feedback db :fetch-locality)
|
||||||
:error (cons :fetch-locality (:error db)))}))
|
:error (cons :fetch-locality (:error db)))})))
|
||||||
|
|
||||||
|
|
||||||
(reg-event-fx
|
(reg-event-fx
|
||||||
|
|
Loading…
Reference in a new issue