allow simul hosts to timeout chat users - closes #8855

pull/8863/head
Thibault Duplessis 2021-05-05 09:14:51 +02:00
parent 3d010e47e1
commit f64030f631
3 changed files with 15 additions and 2 deletions

View File

@ -35,7 +35,8 @@ object show {
name = trans.chatRoom.txt(),
timeout = c.timeout,
public = true,
resourceId = lila.chat.Chat.ResourceId(s"simul/${c.chat.id}")
resourceId = lila.chat.Chat.ResourceId(s"simul/${c.chat.id}"),
localMod = ctx.userId has sim.hostId
)
}
)

View File

@ -80,6 +80,9 @@ final private[simul] class SimulRepo(val coll: Coll)(implicit ec: scala.concurre
.cursor[Simul]()
.list()
def hostId(id: Simul.ID): Fu[Option[User.ID]] =
coll.primitiveOne[User.ID]($id(id), "hostId")
private val featurableSelect = $doc("featurable" -> true)
def allCreatedFeaturable: Fu[List[Simul]] =

View File

@ -59,7 +59,16 @@ final private class SimulSocket(
subscribeChat(rooms, _.Simul)
private lazy val handler: Handler =
roomHandler(rooms, chat, logger, roomId => _.Simul(roomId.value).some, chatBusChan = _.Simul)
roomHandler(
rooms,
chat,
logger,
roomId => _.Simul(roomId.value).some,
chatBusChan = _.Simul,
localTimeout = Some { (roomId, modId, _) =>
repo.hostId(roomId.value).map(_ has modId)
}
)
private lazy val send: String => Unit = remoteSocketApi.makeSender("simul-out").apply _