Merge pull request #7746 from kraktus/kid

set Kid mode
pull/7727/head^2
Thibault Duplessis 2020-12-21 10:33:08 +01:00 committed by GitHub
commit 748388d8b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 32 additions and 0 deletions

View File

@ -108,6 +108,11 @@ final class Mod(
}
)
def kid(username: String) =
OAuthMod(_.SetKidMode) { _ => me =>
modApi.setKid(me.id, username) map some
}(actionResult(username))
def deletePmsAndChats(username: String) =
OAuthMod(_.Shadowban) { _ => _ =>
withSuspect(username) { sus =>

View File

@ -100,6 +100,15 @@ object mod {
submitButton(cls := "btn-rack__btn confirm")("Clear PMs & chats")
)
},
isGranted(_.SetKidMode) option {
postForm(
action := routes.Mod.kid(u.username),
title := "Activate kid mode if not already the case",
cls := "xhr"
)(
submitButton(cls := "btn-rack__btn confirm")("Kid")
)
},
isGranted(_.RemoveRanking) option {
postForm(
action := routes.Mod.rankban(u.username, !u.marks.rankban),

View File

@ -400,6 +400,7 @@ POST /mod/:username/booster/:v controllers.Mod.booster(username: String,
POST /mod/:username/troll/:v controllers.Mod.troll(username: String, v: Boolean)
POST /mod/:username/delete-pms-and-chats controllers.Mod.deletePmsAndChats(username: String)
POST /mod/:username/warn controllers.Mod.warn(username: String, subject: String)
POST /mod/:username/kid controllers.Mod.kid(username: String)
POST /mod/:username/disable-2fa controllers.Mod.disableTwoFactor(username: String)
POST /mod/:username/close controllers.Mod.closeAccount(username: String)
POST /mod/:username/reopen controllers.Mod.reopenAccount(username: String)

View File

@ -110,6 +110,13 @@ final class ModApi(
}
}
def setKid(mod: String, username: String): Funit =
withUser(username) { user =>
userRepo.isKid(user.id) flatMap {
!_ ?? { (userRepo.setKid(user, true)) } >> logApi.setKidMode(mod, user.id)
}
}
def setTitle(mod: String, username: String, title: Option[Title]): Funit =
withUser(username) { user =>
title match {

View File

@ -66,6 +66,7 @@ case class Modlog(
case Modlog.teamKick => "kick from team"
case Modlog.teamEdit => "edited team"
case Modlog.appealPost => "posted in appeal"
case Modlog.setKidMode => "set kid mode"
case a => a
}
@ -129,4 +130,5 @@ object Modlog {
val teamKick = "teamKick"
val teamEdit = "teamEdit"
val appealPost = "appealPost"
val setKidMode = "setKidMode"
}

View File

@ -53,6 +53,11 @@ final class ModlogApi(repo: ModlogRepo, userRepo: UserRepo, slackApi: lila.slack
Modlog.make(mod, sus, if (sus.user.marks.troll) Modlog.troll else Modlog.untroll)
}
def setKidMode(mod: User.ID, kid: User.ID) =
add {
Modlog(mod, kid.some, Modlog.setKidMode)
}
def disableTwoFactor(mod: User.ID, user: User.ID) =
add {
Modlog(mod, user.some, Modlog.disableTwoFactor)

View File

@ -22,6 +22,7 @@ object Permission {
case object NotifySlack extends Permission("NOTIFY_SLACK", List(UserSpy), "Notify #tavern")
case object ViewPrivateComms extends Permission("VIEW_PRIVATE_COMS", "View private comms")
case object Shadowban extends Permission("SHADOWBAN", List(UserSpy, ChatTimeout), "Shadowban")
case object SetKidMode extends Permission("SET_KID_MODE", List(UserSpy), "Set Kid Mode")
case object MarkEngine extends Permission("ADJUST_CHEATER", List(UserSpy), "Mark as cheater")
case object MarkBooster extends Permission("ADJUST_BOOSTER", List(UserSpy), "Mark as booster")
case object IpBan extends Permission("IP_BAN", List(UserSpy), "IP ban")
@ -102,6 +103,7 @@ object Permission {
List(
ViewPrivateComms,
Shadowban,
SetKidMode,
ChatTimeout,
ModerateForum,
ReportBan,
@ -171,6 +173,7 @@ object Permission {
"Comm mod" -> List(
ViewPrivateComms,
Shadowban,
SetKidMode,
ChatTimeout,
ModerateForum,
ReportBan,