filter profile info for mobile app

pull/9799/head
Thibault Duplessis 2021-09-13 21:38:34 +02:00
parent 6fc82e775a
commit 8793e9077d
2 changed files with 9 additions and 1 deletions

View File

@ -23,7 +23,7 @@ final class JsonView(isOnline: lila.socket.IsOnline) {
)
.add("disabled" -> u.disabled)
.add("tosViolation" -> u.lame)
.add("profile" -> u.profile.map(p => profileWrites.writes(p).noNull))
.add("profile" -> u.profile.map(p => profileWrites.writes(p.filterTroll(u.marks.troll)).noNull))
.add("seenAt" -> u.seenAt)
.add("patron" -> u.isPatron)
.add("playTime" -> u.playTime)

View File

@ -45,6 +45,14 @@ case class Profile(
cfcRating.map { OfficialRating("cfc", _) } orElse
dsbRating.map { OfficialRating("dsb", _) }
def filterTroll(troll: Boolean) = copy(
bio = bio ifFalse troll,
firstName = firstName ifFalse troll,
lastName = lastName ifFalse troll,
location = location ifFalse troll,
links = links ifFalse troll
)
private def ne(str: Option[String]) = str.filter(_.nonEmpty)
}