allow creating more team tournaments

tourcreated
Thibault Duplessis 2020-03-20 12:04:51 -06:00
parent 2aabf351ef
commit fe9f31bbbc
2 changed files with 6 additions and 4 deletions

View File

@ -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(

View File

@ -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)