Skip to content

Commit bd7709a

Browse files
authored
Hide some user information via API if user have no enough permission (#8655)
* Hide some user information via API if user have no enough permission * fix test
1 parent ab791fe commit bd7709a

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
@@ -237,21 +237,21 @@ func ToTeam(team *models.Team) *api.Team {
237237
// ToUser convert models.User to api.User
238238
func ToUser(user *models.User, signed, authed bool) *api.User {
239239
result := &api.User{
240-
ID: user.ID,
241240
UserName: user.Name,
242241
AvatarURL: user.AvatarLink(),
243242
FullName: markup.Sanitize(user.FullName),
244-
IsAdmin: user.IsAdmin,
245-
LastLogin: user.LastLoginUnix.AsTime(),
246243
Created: user.CreatedUnix.AsTime(),
247244
}
248245
// hide primary email if API caller isn't user itself or an admin
249246
if !signed {
250247
result.Email = ""
251248
} else if user.KeepEmailPrivate && !authed {
252249
result.Email = user.GetEmail()
253-
} else {
250+
} else { // only user himself and admin could visit these information
251+
result.ID = user.ID
254252
result.Email = user.Email
253+
result.IsAdmin = user.IsAdmin
254+
result.LastLogin = user.LastLoginUnix.AsTime()
255255
}
256256
return result
257257
}

0 commit comments

Comments
 (0)