fix mod redirect

pull/6966/head
Thibault Duplessis 2020-07-10 10:26:46 +02:00
parent 58e68a2aff
commit d226e95827
1 changed files with 32 additions and 25 deletions

View File

@ -168,14 +168,16 @@ final class Mod(
def setTitle(username: String) =
SecureBody(_.SetTitle) { implicit ctx => me =>
implicit def req = ctx.body
lila.user.DataForm.title.bindFromRequest().fold(
_ => fuccess(redirect(username, mod = true)),
title =>
modApi.setTitle(me.id, username, title map Title.apply) >>
env.security.automaticEmail.onTitleSet(username) >>-
env.user.lightUserApi.invalidate(UserModel normalize username) inject
redirect(username, mod = false)
)
lila.user.DataForm.title
.bindFromRequest()
.fold(
_ => fuccess(redirect(username, mod = true)),
title =>
modApi.setTitle(me.id, username, title map Title.apply) >>
env.security.automaticEmail.onTitleSet(username) >>-
env.user.lightUserApi.invalidate(UserModel normalize username) inject
redirect(username, mod = false)
)
}
def setEmail(username: String) =
@ -312,10 +314,11 @@ final class Mod(
SecureBody(_.UserSearch) { implicit ctx => _ =>
implicit def req = ctx.body
val f = UserSearch.form
f.bindFromRequest().fold(
err => BadRequest(html.mod.search(err, Nil)).fuccess,
query => env.mod.search(query) map { html.mod.search(f.fill(query), _) }
)
f.bindFromRequest()
.fold(
err => BadRequest(html.mod.search(err, Nil)).fuccess,
query => env.mod.search(query) map { html.mod.search(f.fill(query), _) }
)
}
protected[controllers] def searchTerm(q: String)(implicit ctx: Context) = {
@ -354,12 +357,15 @@ final class Mod(
}
def singleIpBan(v: Boolean, ip: String) =
Secure(_.IpBan) { _ => _ =>
Secure(_.IpBan) { ctx => _ =>
val address = IpAddress(ip)
val op =
if (v) env.security.firewall.blockIps _
else env.security.firewall.unblockIps _
op(List(address)) inject jsonOkResult
op(List(address)) inject {
if (HTTPRequest isXhr ctx.req) jsonOkResult
else Redirect(routes.Mod.singleIp(ip))
}
}
def chatUser(username: String) =
@ -384,17 +390,18 @@ final class Mod(
OptionFuResult(env.user.repo named username) { user =>
Form(
single("permissions" -> list(text.verifying(Permission.allByDbKey.contains _)))
).bindFromRequest().fold(
_ => BadRequest(html.mod.permissions(user, me)).fuccess,
permissions => {
val newPermissions = Permission(permissions) diff Permission(user.roles)
modApi.setPermissions(AsMod(me), user.username, Permission(permissions)) >> {
newPermissions(Permission.Coach) ?? env.security.automaticEmail.onBecomeCoach(user)
} >> {
Permission(permissions).exists(_ is Permission.SeeReport) ?? env.plan.api.setLifetime(user)
} inject Redirect(routes.Mod.permissions(username)).flashSuccess
}
)
).bindFromRequest()
.fold(
_ => BadRequest(html.mod.permissions(user, me)).fuccess,
permissions => {
val newPermissions = Permission(permissions) diff Permission(user.roles)
modApi.setPermissions(AsMod(me), user.username, Permission(permissions)) >> {
newPermissions(Permission.Coach) ?? env.security.automaticEmail.onBecomeCoach(user)
} >> {
Permission(permissions).exists(_ is Permission.SeeReport) ?? env.plan.api.setLifetime(user)
} inject Redirect(routes.Mod.permissions(username)).flashSuccess
}
)
}
}