diff options
author | 6543 <6543@obermui.de> | 2020-09-17 23:33:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-17 16:33:23 -0500 |
commit | 06480af4723d34ac744c5f4f52fd974c3d016e59 (patch) | |
tree | 9bfe6f0a4858b9d2c8ea482007fe969c5fe4851f /modules/convert/user.go | |
parent | afea4faa33f9cb4a5bb42fb9798fabb3fa4ff7d3 (diff) | |
download | gitea-06480af4723d34ac744c5f4f52fd974c3d016e59.tar.gz gitea-06480af4723d34ac744c5f4f52fd974c3d016e59.zip |
Convert User expose ID each time (#12855)
* git blame tells me a lot of gitea things happen here around 2018, add header
* move user code int its own file
* expose user id
* adopt things from APIFormat
* fix test
* CI.restart()
Diffstat (limited to 'modules/convert/user.go')
-rw-r--r-- | modules/convert/user.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/modules/convert/user.go b/modules/convert/user.go new file mode 100644 index 0000000000..c75a8aac52 --- /dev/null +++ b/modules/convert/user.go @@ -0,0 +1,35 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package convert + +import ( + "code.gitea.io/gitea/models" + "code.gitea.io/gitea/modules/markup" + api "code.gitea.io/gitea/modules/structs" +) + +// ToUser convert models.User to api.User +// signed shall only be set if requester is logged in. authed shall only be set if user is site admin or user himself +func ToUser(user *models.User, signed, authed bool) *api.User { + result := &api.User{ + ID: user.ID, + UserName: user.Name, + FullName: markup.Sanitize(user.FullName), + Email: user.GetEmail(), + AvatarURL: user.AvatarLink(), + Created: user.CreatedUnix.AsTime(), + } + // hide primary email if API caller is anonymous or user keep email private + if signed && (!user.KeepEmailPrivate || authed) { + result.Email = user.Email + } + // only site admin will get these information and possibly user himself + if authed { + result.IsAdmin = user.IsAdmin + result.LastLogin = user.LastLoginUnix.AsTime() + result.Language = user.Language + } + return result +} |