Feature: Parse user agent string in user auth token api response (#16… (#17504)
* Feature: Parse user agent string in user auth token api response (#16222) * Adding UA Parser Go modules attempt (#16222) * Bring user agent vals up per req * fix tests * doc update * update to flatten, no maps * update doc
This commit is contained in:
+32
-6
@@ -8,6 +8,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
"github.com/ua-parser/uap-go/uaparser"
|
||||
)
|
||||
|
||||
// GET /api/user/auth-tokens
|
||||
@@ -62,13 +63,38 @@ func (server *HTTPServer) getUserAuthTokensInternal(c *models.ReqContext, userID
|
||||
isActive = true
|
||||
}
|
||||
|
||||
parser := uaparser.NewFromSaved()
|
||||
client := parser.Parse(token.UserAgent)
|
||||
|
||||
osVersion := ""
|
||||
if client.Os.Major != "" {
|
||||
osVersion = client.Os.Major
|
||||
|
||||
if client.Os.Minor != "" {
|
||||
osVersion = osVersion + "." + client.Os.Minor
|
||||
}
|
||||
}
|
||||
|
||||
browserVersion := ""
|
||||
if client.UserAgent.Major != "" {
|
||||
browserVersion = client.UserAgent.Major
|
||||
|
||||
if client.UserAgent.Minor != "" {
|
||||
browserVersion = browserVersion + "." + client.UserAgent.Minor
|
||||
}
|
||||
}
|
||||
|
||||
result = append(result, &dtos.UserToken{
|
||||
Id: token.Id,
|
||||
IsActive: isActive,
|
||||
ClientIp: token.ClientIp,
|
||||
UserAgent: token.UserAgent,
|
||||
CreatedAt: time.Unix(token.CreatedAt, 0),
|
||||
SeenAt: time.Unix(token.SeenAt, 0),
|
||||
Id: token.Id,
|
||||
IsActive: isActive,
|
||||
ClientIp: token.ClientIp,
|
||||
Device: client.Device.ToString(),
|
||||
OperatingSystem: client.Os.Family,
|
||||
OperatingSystemVersion: osVersion,
|
||||
Browser: client.UserAgent.Family,
|
||||
BrowserVersion: browserVersion,
|
||||
CreatedAt: time.Unix(token.CreatedAt, 0),
|
||||
SeenAt: time.Unix(token.SeenAt, 0),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user