send mod messages as lichess - for #2860
This commit is contained in:
parent
b6b152f965
commit
524c0702a9
|
@ -16,7 +16,7 @@ title = thread.name) {
|
||||||
@thread.posts.map { post =>
|
@thread.posts.map { post =>
|
||||||
<div class="thread_message embed_analyse" id="message_@post.id">
|
<div class="thread_message embed_analyse" id="message_@post.id">
|
||||||
<span class="infos">
|
<span class="infos">
|
||||||
@userIdLink(thread.senderOf(post), none) <span data-icon="H"></span> @userIdLink(thread.receiverOf(post), "inline".some) - @momentFormat(post.createdAt)
|
@userIdLink(thread.visibleSenderOf(post), none) <span data-icon="H"></span> @userIdLink(thread.visibleReceiverOf(post), "inline".some) - @momentFormat(post.createdAt)
|
||||||
</span>
|
</span>
|
||||||
<div class="thread_message_body">@autoLink(post.text)</div>
|
<div class="thread_message_body">@autoLink(post.text)</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -26,7 +26,7 @@ private[message] final class DataForm(security: MessageSecurity) {
|
||||||
user = fetchUser(username) err "Unknown username " + username,
|
user = fetchUser(username) err "Unknown username " + username,
|
||||||
subject = subject,
|
subject = subject,
|
||||||
text = text,
|
text = text,
|
||||||
mod = mod.isDefined
|
asMod = mod.isDefined
|
||||||
)
|
)
|
||||||
})(_.export.some))
|
})(_.export.some))
|
||||||
|
|
||||||
|
@ -43,9 +43,9 @@ object DataForm {
|
||||||
user: User,
|
user: User,
|
||||||
subject: String,
|
subject: String,
|
||||||
text: String,
|
text: String,
|
||||||
mod: Boolean
|
asMod: Boolean
|
||||||
) {
|
) {
|
||||||
|
|
||||||
def export = (user.username, subject, text, mod option "1")
|
def export = (user.username, subject, text, asMod option "1")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,8 @@ final class MessageApi(
|
||||||
name = data.subject,
|
name = data.subject,
|
||||||
text = data.text,
|
text = data.text,
|
||||||
creatorId = me.id,
|
creatorId = me.id,
|
||||||
invitedId = data.user.id
|
invitedId = data.user.id,
|
||||||
|
asMod = data.asMod
|
||||||
)
|
)
|
||||||
muteThreadIfNecessary(t, me, invited, data) flatMap { thread =>
|
muteThreadIfNecessary(t, me, invited, data) flatMap { thread =>
|
||||||
sendUnlessBlocked(thread, fromMod) flatMap {
|
sendUnlessBlocked(thread, fromMod) flatMap {
|
||||||
|
@ -110,7 +111,7 @@ final class MessageApi(
|
||||||
notifyApi addNotification Notification.make(
|
notifyApi addNotification Notification.make(
|
||||||
Notification.Notifies(thread receiverOf post),
|
Notification.Notifies(thread receiverOf post),
|
||||||
PrivateMessage(
|
PrivateMessage(
|
||||||
PrivateMessage.SenderId(thread senderOf post),
|
PrivateMessage.SenderId(thread visibleSenderOf post),
|
||||||
PrivateMessage.Thread(id = thread.id, name = shorten(thread.name, 80)),
|
PrivateMessage.Thread(id = thread.id, name = shorten(thread.name, 80)),
|
||||||
PrivateMessage.Text(shorten(post.text, 80))
|
PrivateMessage.Text(shorten(post.text, 80))
|
||||||
)
|
)
|
||||||
|
|
|
@ -13,7 +13,8 @@ case class Thread(
|
||||||
posts: List[Post],
|
posts: List[Post],
|
||||||
creatorId: String,
|
creatorId: String,
|
||||||
invitedId: String,
|
invitedId: String,
|
||||||
visibleByUserIds: List[String]
|
visibleByUserIds: List[String],
|
||||||
|
asMod: Boolean
|
||||||
) {
|
) {
|
||||||
|
|
||||||
def +(post: Post) = copy(
|
def +(post: Post) = copy(
|
||||||
|
@ -54,8 +55,16 @@ case class Thread(
|
||||||
|
|
||||||
def senderOf(post: Post) = post.isByCreator.fold(creatorId, invitedId)
|
def senderOf(post: Post) = post.isByCreator.fold(creatorId, invitedId)
|
||||||
|
|
||||||
|
def visibleSenderOf(post: Post) =
|
||||||
|
if (post.isByCreator && asMod) "lichess"
|
||||||
|
else senderOf(post)
|
||||||
|
|
||||||
def receiverOf(post: Post) = post.isByCreator.fold(invitedId, creatorId)
|
def receiverOf(post: Post) = post.isByCreator.fold(invitedId, creatorId)
|
||||||
|
|
||||||
|
def visibleReceiverOf(post: Post) =
|
||||||
|
if (!post.isByCreator && asMod) "lichess"
|
||||||
|
else receiverOf(post)
|
||||||
|
|
||||||
def isWrittenBy(post: Post, user: User) = post.isByCreator == isCreator(user)
|
def isWrittenBy(post: Post, user: User) = post.isByCreator == isCreator(user)
|
||||||
|
|
||||||
def nonEmptyName = (name.trim.some filter (_.nonEmpty)) | "No subject"
|
def nonEmptyName = (name.trim.some filter (_.nonEmpty)) | "No subject"
|
||||||
|
@ -79,7 +88,8 @@ object Thread {
|
||||||
name: String,
|
name: String,
|
||||||
text: String,
|
text: String,
|
||||||
creatorId: String,
|
creatorId: String,
|
||||||
invitedId: String
|
invitedId: String,
|
||||||
|
asMod: Boolean
|
||||||
): Thread = Thread(
|
): Thread = Thread(
|
||||||
_id = Random nextString idSize,
|
_id = Random nextString idSize,
|
||||||
name = name,
|
name = name,
|
||||||
|
@ -91,7 +101,8 @@ object Thread {
|
||||||
)),
|
)),
|
||||||
creatorId = creatorId,
|
creatorId = creatorId,
|
||||||
invitedId = invitedId,
|
invitedId = invitedId,
|
||||||
visibleByUserIds = List(creatorId, invitedId)
|
visibleByUserIds = List(creatorId, invitedId),
|
||||||
|
asMod = asMod
|
||||||
)
|
)
|
||||||
|
|
||||||
import lila.db.dsl.BSONJodaDateTimeHandler
|
import lila.db.dsl.BSONJodaDateTimeHandler
|
||||||
|
|
Loading…
Reference in a new issue