diff --git a/src/main/scala/app/ControllerBase.scala b/src/main/scala/app/ControllerBase.scala index 92396b78d..bff599433 100644 --- a/src/main/scala/app/ControllerBase.scala +++ b/src/main/scala/app/ControllerBase.scala @@ -12,6 +12,7 @@ import scala.Some import service.AccountService import javax.servlet.http.{HttpSession, HttpServletRequest} import java.text.SimpleDateFormat +import javax.servlet.{FilterChain, ServletResponse, ServletRequest} /** * Provides generic features for controller implementations. @@ -21,6 +22,21 @@ abstract class ControllerBase extends ScalatraFilter implicit val jsonFormats = DefaultFormats + override def doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain) { + val httpRequest = request.asInstanceOf[HttpServletRequest] + val path = httpRequest.getRequestURI.substring(request.getServletContext.getContextPath.length) + + if(path.startsWith("/console/")){ + Option(httpRequest.getSession.getAttribute("LOGIN_ACCOUNT").asInstanceOf[Account]).collect { + case account if(account.isAdmin) => chain.doFilter(request, response) + } + } else if(path.startsWith("/git/")){ + chain.doFilter(request, response) + } else { + super.doFilter(request, response, chain) + } + } + /** * Returns the context object for the request. */ diff --git a/src/main/twirl/admin/menu.scala.html b/src/main/twirl/admin/menu.scala.html index d9c7969aa..8e366a71b 100644 --- a/src/main/twirl/admin/menu.scala.html +++ b/src/main/twirl/admin/menu.scala.html @@ -10,6 +10,9 @@