session.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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/miniflux2/server/core"
  7. "log"
  8. )
  9. func (c *Controller) ShowSessions(ctx *core.Context, request *core.Request, response *core.Response) {
  10. user := ctx.GetLoggedUser()
  11. args, err := c.getCommonTemplateArgs(ctx)
  12. if err != nil {
  13. response.Html().ServerError(err)
  14. return
  15. }
  16. sessions, err := c.store.GetSessions(user.ID)
  17. if err != nil {
  18. response.Html().ServerError(err)
  19. return
  20. }
  21. sessionCookie := request.GetCookie("sessionID")
  22. response.Html().Render("sessions", args.Merge(tplParams{
  23. "sessions": sessions,
  24. "currentSessionToken": sessionCookie,
  25. "menu": "settings",
  26. }))
  27. }
  28. func (c *Controller) RemoveSession(ctx *core.Context, request *core.Request, response *core.Response) {
  29. user := ctx.GetLoggedUser()
  30. sessionID, err := request.GetIntegerParam("sessionID")
  31. if err != nil {
  32. response.Html().BadRequest(err)
  33. return
  34. }
  35. err = c.store.RemoveSessionByID(user.ID, sessionID)
  36. if err != nil {
  37. log.Println("[UI:RemoveSession]", err)
  38. }
  39. response.Redirect(ctx.GetRoute("sessions"))
  40. }