From 75bec57bfb1c0ea03de63aab6f2839c93cba43cc Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 20 Jul 2016 14:24:03 +0200 Subject: [PATCH] public mod permission --- app/controllers/Mod.scala | 2 +- app/mashup/UserInfo.scala | 7 +++++++ modules/security/src/main/Permission.scala | 7 +++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/controllers/Mod.scala b/app/controllers/Mod.scala index 8a831b18f1..3667c7505d 100644 --- a/app/controllers/Mod.scala +++ b/app/controllers/Mod.scala @@ -191,7 +191,7 @@ object Mod extends LilaController { )).bindFromRequest.fold( err => BadRequest(html.mod.powaaa(user)).fuccess, permissions => - UserRepo.setRoles(user.id, permissions map (_.toUpperCase)) inject + UserRepo.setRoles(user.id, permissions.map(_.toUpperCase)) inject Redirect(routes.User.show(user.username) + "?mod") ) } diff --git a/app/mashup/UserInfo.scala b/app/mashup/UserInfo.scala index 993352084b..37f00d5dbe 100644 --- a/app/mashup/UserInfo.scala +++ b/app/mashup/UserInfo.scala @@ -39,7 +39,14 @@ case class UserInfo( def completionRatePercent = completionRate.map { cr => math.round(cr * 100) } + def isPublicMod = lila.security.Granter(_.PublicMod)(user) + def allTrophies = List( + isPublicMod option Trophy( + _id = "", + user = user.id, + kind = Trophy.Kind.Moderator, + date = org.joda.time.DateTime.now), isStreamer option Trophy( _id = "", user = user.id, diff --git a/modules/security/src/main/Permission.scala b/modules/security/src/main/Permission.scala index d363e215d0..e308274f8b 100644 --- a/modules/security/src/main/Permission.scala +++ b/modules/security/src/main/Permission.scala @@ -35,6 +35,7 @@ object Permission { case object TerminateTournament extends Permission("ROLE_TERMINATE_TOURNAMENT") case object ManageTournament extends Permission("ROLE_MANAGE_TOURNAMENT") case object ChangePermission extends Permission("ROLE_CHANGE_PERMISSION") + case object PublicMod extends Permission("ROLE_PUBLIC_MOD") case object Hunter extends Permission("ROLE_HUNTER", List( ViewBlurs, MarkEngine, MarkBooster, StaffForum, @@ -46,12 +47,14 @@ object Permission { ChatTimeout, MarkTroll, SetTitle, SetEmail, ModerateQa, StreamConfig, MessageAnyone, CloseTeam, TerminateTournament, ManageTournament)) - case object SuperAdmin extends Permission("ROLE_SUPER_ADMIN", List(Admin, ChangePermission)) + case object SuperAdmin extends Permission("ROLE_SUPER_ADMIN", List( + Admin, ChangePermission, PublicMod)) lazy val allButSuperAdmin: List[Permission] = List( Admin, Hunter, MarkTroll, ChatTimeout, ChangePermission, ViewBlurs, StaffForum, ModerateForum, UserSpy, MarkEngine, MarkBooster, IpBan, ModerateQa, StreamConfig, - Beta, MessageAnyone, UserSearch, CloseTeam, TerminateTournament, ManageTournament) + Beta, MessageAnyone, UserSearch, CloseTeam, TerminateTournament, ManageTournament, + PublicMod) lazy private val all: List[Permission] = SuperAdmin :: allButSuperAdmin