Skip to content

Commit 14ebda6

Browse files
lunnylafriks
authored andcommitted
Hide some user information via API if user have no enough permission (#8655) (#8657)
* Hide some user information via API if user have no enough permission * fix test
1 parent 1d10747 commit 14ebda6

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

integrations/api_team_user_test.go

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ func TestAPITeamUser(t *testing.T) {
2929
var user2 *api.User
3030
DecodeJSON(t, resp, &user2)
3131
user2.Created = user2.Created.In(time.Local)
32-
user2.LastLogin = user2.LastLogin.In(time.Local)
3332
user := models.AssertExistsAndLoadBean(t, &models.User{Name: "user2"}).(*models.User)
3433

3534
assert.Equal(t, convert.ToUser(user, true, false), user2)

routers/api/v1/convert/convert.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -232,21 +232,21 @@ func ToTeam(team *models.Team) *api.Team {
232232
// ToUser convert models.User to api.User
233233
func ToUser(user *models.User, signed, authed bool) *api.User {
234234
result := &api.User{
235-
ID: user.ID,
236235
UserName: user.Name,
237236
AvatarURL: user.AvatarLink(),
238237
FullName: markup.Sanitize(user.FullName),
239-
IsAdmin: user.IsAdmin,
240-
LastLogin: user.LastLoginUnix.AsTime(),
241238
Created: user.CreatedUnix.AsTime(),
242239
}
243240
// hide primary email if API caller isn't user itself or an admin
244241
if !signed {
245242
result.Email = ""
246243
} else if user.KeepEmailPrivate && !authed {
247244
result.Email = user.GetEmail()
248-
} else {
245+
} else { // only user himself and admin could visit these information
246+
result.ID = user.ID
249247
result.Email = user.Email
248+
result.IsAdmin = user.IsAdmin
249+
result.LastLogin = user.LastLoginUnix.AsTime()
250250
}
251251
return result
252252
}

0 commit comments

Comments
 (0)