diff options
Diffstat (limited to 'app/middleware/perms_check.go')
-rw-r--r-- | app/middleware/perms_check.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/app/middleware/perms_check.go b/app/middleware/perms_check.go new file mode 100644 index 0000000..d118f5a --- /dev/null +++ b/app/middleware/perms_check.go | |||
@@ -0,0 +1,20 @@ | |||
1 | package middleware | ||
2 | |||
3 | import ( | ||
4 | "github.com/labstack/echo/v4" | ||
5 | ) | ||
6 | |||
7 | func RequireAdminPrivileges(next echo.HandlerFunc) echo.HandlerFunc { | ||
8 | return func(c echo.Context) error { | ||
9 | p, err := GetAuthorizedPrincipal(c) | ||
10 | if err != nil { | ||
11 | return echo.ErrUnauthorized | ||
12 | } | ||
13 | |||
14 | if !p.IsAdmin { | ||
15 | return echo.NotFoundHandler(c) | ||
16 | } | ||
17 | |||
18 | return next(c) | ||
19 | } | ||
20 | } | ||