// 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 { if user == nil { return nil } result := &api.User{ ID: user.ID, UserName: user.Name, FullName: markup.Sanitize(user.FullName), Email: user.GetEmail(), AvatarURL: user.AvatarLink(), Created: user.CreatedUnix.AsTime(), Restricted: user.IsRestricted, } // 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 }