lila/app/controllers/Mod.scala

59 lines
1.7 KiB
Scala
Raw Normal View History

package controllers
import lila.app._
import lila.security.Permission
2013-05-16 16:00:28 -06:00
import lila.user.UserRepo
2014-02-26 17:18:09 -07:00
import views._
import play.api.mvc._
import play.api.mvc.Results._
object Mod extends LilaController {
private def modApi = Env.mod.api
private def modLogApi = Env.mod.logApi
2014-02-17 02:12:19 -07:00
def engine(username: String) = Secure(_.MarkEngine) { _ =>
me => modApi.adjust(me.id, username) inject redirect(username)
2013-05-10 03:56:34 -06:00
}
2014-02-17 02:12:19 -07:00
def troll(username: String) = Secure(_.MarkTroll) { _ =>
me =>
2014-01-16 01:46:01 -07:00
modApi.troll(me.id, username) inject redirect(username)
2013-05-10 03:56:34 -06:00
}
2014-02-17 02:12:19 -07:00
def ban(username: String) = Secure(_.IpBan) { implicit ctx =>
me => modApi.ban(me.id, username) inject redirect(username)
2013-05-10 03:56:34 -06:00
}
2014-02-17 02:12:19 -07:00
def ipban(ip: String) = Secure(_.IpBan) { implicit ctx =>
me => modApi.ipban(me.id, ip)
}
2014-02-17 02:12:19 -07:00
def closeAccount(username: String) = Secure(_.CloseAccount) { implicit ctx =>
me => modApi.closeAccount(me.id, username) inject redirect(username)
2014-02-01 06:13:22 -07:00
}
2014-02-17 02:12:19 -07:00
def reopenAccount(username: String) = Secure(_.ReopenAccount) { implicit ctx =>
me => modApi.reopenAccount(me.id, username) inject redirect(username)
2013-09-11 04:38:16 -06:00
}
2014-02-26 17:18:09 -07:00
def setTitle(username: String) = AuthBody { implicit ctx =>
me =>
implicit def req = ctx.body
if (isGranted(_.SetTitle))
lila.user.DataForm.title.bindFromRequest.fold(
err => fuccess(Redirect(routes.User.show(username))),
title => modApi.setTitle(me.id, username, title) inject redirect(username, false)
)
else fuccess(authorizationFailed(ctx.req))
}
2014-02-17 02:12:19 -07:00
def log = Auth { implicit ctx =>
me => modLogApi.recent map { html.mod.log(_) }
2013-05-10 03:56:34 -06:00
}
2014-01-16 01:46:01 -07:00
2014-02-26 17:18:09 -07:00
def redirect(username: String, mod: Boolean = true) =
Redirect(routes.User.show(username).url + mod.??("?mod"))
}