Browse Source

Add LastLogin to the User API (#7196)

release/v1.9
zeripath 4 years ago
committed by techknowlogick
parent
commit
cf2221e3ac
  1. 2
      models/user.go
  2. 5
      modules/structs/user.go
  3. 2
      routers/api/v1/convert/convert.go
  4. 10
      templates/swagger/v1_json.tmpl

2
models/user.go

@ -214,6 +214,8 @@ func (u *User) APIFormat() *api.User {
AvatarURL: u.AvatarLink(),
Language: u.Language,
IsAdmin: u.IsAdmin,
LastLogin: u.LastLoginUnix.AsTime(),
Created: u.CreatedUnix.AsTime(),
}
}

5
modules/structs/user.go

@ -6,6 +6,7 @@ package structs
import (
"encoding/json"
"time"
)
// User represents a user
@ -25,6 +26,10 @@ type User struct {
Language string `json:"language"`
// Is the user an administrator
IsAdmin bool `json:"is_admin"`
// swagger:strfmt date-time
LastLogin time.Time `json:"last_login,omitempty"`
// swagger:strfmt date-time
Created time.Time `json:"created,omitempty"`
}
// MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility

2
routers/api/v1/convert/convert.go

@ -236,6 +236,8 @@ func ToUser(user *models.User, signed, admin bool) *api.User {
AvatarURL: user.AvatarLink(),
FullName: markup.Sanitize(user.FullName),
IsAdmin: user.IsAdmin,
LastLogin: user.LastLoginUnix.AsTime(),
Created: user.CreatedUnix.AsTime(),
}
if signed && (!user.KeepEmailPrivate || admin) {
result.Email = user.Email

10
templates/swagger/v1_json.tmpl

@ -9715,6 +9715,11 @@
"type": "string",
"x-go-name": "AvatarURL"
},
"created": {
"type": "string",
"format": "date-time",
"x-go-name": "Created"
},
"email": {
"type": "string",
"format": "email",
@ -9741,6 +9746,11 @@
"type": "string",
"x-go-name": "Language"
},
"last_login": {
"type": "string",
"format": "date-time",
"x-go-name": "LastLogin"
},
"login": {
"description": "the user's username",
"type": "string",

Loading…
Cancel
Save