allow creating more team tournaments
This commit is contained in:
parent
2aabf351ef
commit
fe9f31bbbc
|
@ -261,7 +261,7 @@ final class Tournament(
|
|||
fuccess(Redirect(routes.Tournament.home(1)))
|
||||
}
|
||||
|
||||
private def rateLimitCreation(me: UserModel, password: Option[String], req: RequestHeader)(
|
||||
private def rateLimitCreation(me: UserModel, isPrivate: Boolean, req: RequestHeader)(
|
||||
create: => Fu[Result]
|
||||
): Fu[Result] = {
|
||||
val cost =
|
||||
|
@ -269,7 +269,7 @@ final class Tournament(
|
|||
env.streamer.liveStreamApi.isStreaming(me.id) ||
|
||||
isGranted(_.ManageTournament, me) ||
|
||||
me.isVerified ||
|
||||
password.isDefined) 1
|
||||
isPrivate) 1
|
||||
else 3
|
||||
CreateLimitPerUser(me.id, cost = cost) {
|
||||
CreateLimitPerIP(HTTPRequest lastRemoteAddress req, cost = cost) {
|
||||
|
@ -286,7 +286,7 @@ final class Tournament(
|
|||
html = forms(me).bindFromRequest.fold(
|
||||
err => BadRequest(html.tournament.form(err, me, teams)).fuccess,
|
||||
setup =>
|
||||
rateLimitCreation(me, setup.password, ctx.req) {
|
||||
rateLimitCreation(me, setup.isPrivate, ctx.req) {
|
||||
api.createTournament(setup, me, teams, getUserTeamIds) map { tour =>
|
||||
Redirect {
|
||||
if (tour.isTeamBattle) routes.Tournament.teamBattleEdit(tour.id)
|
||||
|
@ -310,7 +310,7 @@ final class Tournament(
|
|||
forms(me).bindFromRequest.fold(
|
||||
jsonFormErrorDefaultLang,
|
||||
setup =>
|
||||
rateLimitCreation(me, setup.password, req) {
|
||||
rateLimitCreation(me, setup.isPrivate, req) {
|
||||
teamC.teamsIBelongTo(me) flatMap { teams =>
|
||||
api.createTournament(setup, me, teams, getUserTeamIds) flatMap { tour =>
|
||||
jsonView(
|
||||
|
|
|
@ -150,6 +150,8 @@ private[tournament] case class TournamentSetup(
|
|||
def sufficientDuration = estimateNumberOfGamesOneCanPlay >= 3
|
||||
def excessiveDuration = estimateNumberOfGamesOneCanPlay <= 70
|
||||
|
||||
def isPrivate = password.isDefined || conditions.teamMember.isDefined
|
||||
|
||||
private def estimateNumberOfGamesOneCanPlay: Double = (minutes * 60) / estimatedGameSeconds
|
||||
|
||||
// There are 2 players, and they don't always use all their time (0.8)
|
||||
|
|
Loading…
Reference in a new issue