Skip to content

Commit 63c54f7

Browse files
lunnylafriks
authored andcommitted
Hide some user information via API if user have no enough permission (#8655) (#8658)
* Hide some user information via API if user have no enough permission * fix test
1 parent f984545 commit 63c54f7

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
@@ -231,21 +231,21 @@ func ToTeam(team *models.Team) *api.Team {
231231
// ToUser convert models.User to api.User
232232
func ToUser(user *models.User, signed, authed bool) *api.User {
233233
result := &api.User{
234-
ID: user.ID,
235234
UserName: user.Name,
236235
AvatarURL: user.AvatarLink(),
237236
FullName: markup.Sanitize(user.FullName),
238-
IsAdmin: user.IsAdmin,
239-
LastLogin: user.LastLoginUnix.AsTime(),
240237
Created: user.CreatedUnix.AsTime(),
241238
}
242239
// hide primary email if API caller isn't user itself or an admin
243240
if !signed {
244241
result.Email = ""
245242
} else if user.KeepEmailPrivate && !authed {
246243
result.Email = user.GetEmail()
247-
} else {
244+
} else { // only user himself and admin could visit these information
245+
result.ID = user.ID
248246
result.Email = user.Email
247+
result.IsAdmin = user.IsAdmin
248+
result.LastLogin = user.LastLoginUnix.AsTime()
249249
}
250250
return result
251251
}

0 commit comments

Comments
 (0)