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
|
||||
|
||||
-- :name list-elector-intentions :? :*
|
||||
-- :doc short form of `list-intentions-by-elector`, returning far less data,
|
||||
-- for use in `youyesyet.routes.rest/get-local-data`, q.v.
|
||||
-- :doc short form of `list-intentions-by-elector`, returning far less data, 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
|
||||
FROM intentions, visits
|
||||
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))
|
||||
|
||||
|
||||
(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
|
||||
[item]
|
||||
"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.
|
||||
(js/console.log (str "Failed to fetch locality data" response))
|
||||
;; loop to do it again
|
||||
(dispatch [:dispatch-later [{:ms 60000 :dispatch [:fetch-locality]}]])
|
||||
{:db (assoc
|
||||
(remove-from-feedback db :fetch-locality)
|
||||
:error (cons :fetch-locality (:error db)))}))
|
||||
(handle-forbidden
|
||||
response
|
||||
(dispatch [:dispatch-later [{:ms 60000 :dispatch [:fetch-locality]}]])
|
||||
{:db (assoc
|
||||
(remove-from-feedback db :fetch-locality)
|
||||
:error (cons :fetch-locality (:error db)))})))
|
||||
|
||||
|
||||
(reg-event-fx
|
||||
|
|
Loading…
Reference in a new issue