package scrum.server.project; import ilarkesto.base.PermissionDeniedException; import ilarkesto.webapp.Servlet; import java.io.File; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import scrum.server.ScrumWebApplication; import scrum.server.WebSession; import scrum.server.common.AHttpServlet; public class BackupDownloadServlet extends AHttpServlet { @Override protected void onRequest(HttpServletRequest req, HttpServletResponse resp, WebSession session) throws IOException { ScrumWebApplication webapp = ScrumWebApplication.get(); String projectId = req.getParameter("projectId"); if (projectId == null) throw new RuntimeException("projectId == null"); Project project = webapp.getProjectDao().getById(projectId); if (!project.containsAdmin(session.getUser())) throw new PermissionDeniedException(); ProjectZipper zipper = new ProjectZipper(new File(webapp.getApplicationDataDir()), project); Servlet.setFilename("scrum-project-backup.zip", resp); zipper.createZip(resp.getOutputStream()); } }