diff --git a/src/main/scala/app/ControllerBase.scala b/src/main/scala/app/ControllerBase.scala index 92396b7..bff5994 100644 --- a/src/main/scala/app/ControllerBase.scala +++ b/src/main/scala/app/ControllerBase.scala @@ -12,6 +12,7 @@ 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 @@ 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 d9c7969..8e366a7 100644 --- a/src/main/twirl/admin/menu.scala.html +++ b/src/main/twirl/admin/menu.scala.html @@ -10,6 +10,9 @@ System Settings +
  • + H2 Console +