mirror of
https://github.com/metosin/reitit.git
synced 2025-12-21 10:01:11 +00:00
Merge pull request #369 from mchughs/patch-1
Update dynamic_extensions.md
This commit is contained in:
commit
a99bb1795e
1 changed files with 3 additions and 3 deletions
|
|
@ -9,9 +9,9 @@ Example middleware to guard routes based on user roles:
|
||||||
(require '[clojure.set :as set])
|
(require '[clojure.set :as set])
|
||||||
|
|
||||||
(defn wrap-enforce-roles [handler]
|
(defn wrap-enforce-roles [handler]
|
||||||
(fn [{::keys [roles] :as request}]
|
(fn [{:keys [my-roles] :as request}]
|
||||||
(let [required (some-> request (ring/get-match) :data ::roles)]
|
(let [required (some-> request (ring/get-match) :data ::roles)]
|
||||||
(if (and (seq required) (not (set/subset? required roles)))
|
(if (and (seq required) (not (set/subset? required my-roles)))
|
||||||
{:status 403, :body "forbidden"}
|
{:status 403, :body "forbidden"}
|
||||||
(handler request)))))
|
(handler request)))))
|
||||||
```
|
```
|
||||||
|
|
@ -48,7 +48,7 @@ Anonymous access to guarded route:
|
||||||
Authorized access to guarded route:
|
Authorized access to guarded route:
|
||||||
|
|
||||||
```clj
|
```clj
|
||||||
(app {:request-method :get, :uri "/api/admin/ping", ::roles #{:admin}})
|
(app {:request-method :get, :uri "/api/admin/ping", :my-roles #{:admin}})
|
||||||
; {:status 200, :body "ok"}
|
; {:status 200, :body "ok"}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue