session.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright 2017 Frédéric Guillot. All rights reserved.
  2. // Use of this source code is governed by the Apache 2.0
  3. // license that can be found in the LICENSE file.
  4. package controller
  5. import (
  6. "github.com/miniflux/miniflux/logger"
  7. "github.com/miniflux/miniflux/server/core"
  8. )
  9. // ShowSessions shows the list of active sessions.
  10. func (c *Controller) ShowSessions(ctx *core.Context, request *core.Request, response *core.Response) {
  11. user := ctx.LoggedUser()
  12. args, err := c.getCommonTemplateArgs(ctx)
  13. if err != nil {
  14. response.HTML().ServerError(err)
  15. return
  16. }
  17. sessions, err := c.store.Sessions(user.ID)
  18. if err != nil {
  19. response.HTML().ServerError(err)
  20. return
  21. }
  22. sessionCookie := request.Cookie("sessionID")
  23. response.HTML().Render("sessions", args.Merge(tplParams{
  24. "sessions": sessions,
  25. "currentSessionToken": sessionCookie,
  26. "menu": "settings",
  27. }))
  28. }
  29. // RemoveSession remove a session.
  30. func (c *Controller) RemoveSession(ctx *core.Context, request *core.Request, response *core.Response) {
  31. user := ctx.LoggedUser()
  32. sessionID, err := request.IntegerParam("sessionID")
  33. if err != nil {
  34. response.HTML().BadRequest(err)
  35. return
  36. }
  37. err = c.store.RemoveSessionByID(user.ID, sessionID)
  38. if err != nil {
  39. logger.Error("[Controller:RemoveSession] %v", err)
  40. }
  41. response.Redirect(ctx.Route("sessions"))
  42. }