From fa718e25768f094aa2d93ceec60fd9263d31f849 Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 18 Aug 2020 16:55:44 +0200 Subject: [PATCH] Fix token renew for link shares Signed-off-by: kolaente --- pkg/routes/api/v1/login.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkg/routes/api/v1/login.go b/pkg/routes/api/v1/login.go index 893328ab3e..8a8b49dfeb 100644 --- a/pkg/routes/api/v1/login.go +++ b/pkg/routes/api/v1/login.go @@ -88,13 +88,23 @@ func Login(c echo.Context) error { // @Success 200 {object} v1.Token // @Failure 400 {object} models.Message "Only user token are available for renew." // @Router /user/token [post] -func RenewToken(c echo.Context) error { +func RenewToken(c echo.Context) (err error) { jwtinf := c.Get("user").(*jwt.Token) claims := jwtinf.Claims.(jwt.MapClaims) typ := int(claims["type"].(float64)) - if typ != AuthTypeUser { - return echo.ErrBadRequest + if typ == AuthTypeLinkShare { + share := &models.LinkSharing{} + share.ID = int64(claims["id"].(float64)) + err := share.ReadOne() + if err != nil { + return handler.HandleHTTPError(err, c) + } + t, err := NewLinkShareJWTAuthtoken(share) + if err != nil { + return handler.HandleHTTPError(err, c) + } + return c.JSON(http.StatusOK, Token{Token: t}) } user, err := user2.GetUserFromClaims(claims)