diff options
Diffstat (limited to 'weed/admin/dash/middleware.go')
| -rw-r--r-- | weed/admin/dash/middleware.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/weed/admin/dash/middleware.go b/weed/admin/dash/middleware.go new file mode 100644 index 000000000..ce538d7ca --- /dev/null +++ b/weed/admin/dash/middleware.go @@ -0,0 +1,27 @@ +package dash + +import ( + "net/http" + + "github.com/gin-contrib/sessions" + "github.com/gin-gonic/gin" +) + +// RequireAuth checks if user is authenticated +func RequireAuth() gin.HandlerFunc { + return func(c *gin.Context) { + session := sessions.Default(c) + authenticated := session.Get("authenticated") + username := session.Get("username") + + if authenticated != true || username == nil { + c.Redirect(http.StatusTemporaryRedirect, "/login") + c.Abort() + return + } + + // Set username in context for use in handlers + c.Set("username", username) + c.Next() + } +} |
