diff options
author | Gabriel Arakaki Giovanini <mail@gabrielgio.me> | 2023-09-12 18:37:30 +0200 |
---|---|---|
committer | Gabriel Arakaki Giovanini <mail@gabrielgio.me> | 2023-09-12 18:40:00 +0200 |
commit | ae10e121875982d6956d6bff453544cc59a75616 (patch) | |
tree | 9b6508c9b2a105ce3027bb24342916050e2f50cc /pkg/view/view.go | |
parent | d33ba9ee675eedf47ce4a7977d116bf81dda5b2e (diff) | |
download | lens-ae10e121875982d6956d6bff453544cc59a75616.tar.gz lens-ae10e121875982d6956d6bff453544cc59a75616.tar.bz2 lens-ae10e121875982d6956d6bff453544cc59a75616.zip |
feat: Add admin control
Now only admins can access settings.
Diffstat (limited to 'pkg/view/view.go')
-rw-r--r-- | pkg/view/view.go | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/pkg/view/view.go b/pkg/view/view.go index 663738b..f8dfa16 100644 --- a/pkg/view/view.go +++ b/pkg/view/view.go @@ -1,7 +1,22 @@ package view -import "git.sr.ht/~gabrielgio/img/pkg/ext" +import ( + "net/http" + + "git.sr.ht/~gabrielgio/img/pkg/ext" +) type View interface { SetMyselfIn(r *ext.Router) } + +func Protect(next ext.ErrorRequestHandler) ext.ErrorRequestHandler { + return func(w http.ResponseWriter, r *http.Request) error { + user := ext.GetUserFromCtx(r) + if !user.IsAdmin { + http.NotFound(w, r) + return nil + } + return next(w, r) + } +} |