public TorrentSettingsAdminPage()

in server/src/main/java/jetbrains/buildServer/torrent/web/TorrentSettingsAdminPage.java [36:74]


  public TorrentSettingsAdminPage(@NotNull PagePlaces pagePlaces,
                                  @NotNull WebControllerManager controllerManager,
                                  @NotNull PluginDescriptor descriptor,
                                  @NotNull SecurityContext securityContext,
                                  @NotNull AuthorizationInterceptor authInterceptor,
                                  @NotNull TorrentTrackerManager torrentTrackerManager,
                                  @NotNull TorrentConfigurator torrentConfigurator,
                                  @NotNull ServerTorrentsDirectorySeeder torrentSeeder) {
    super(pagePlaces, TAB_ID, descriptor.getPluginResourcesPath("torrentSettings.jsp"), "Torrent Settings");
    myTorrentTrackerManager = torrentTrackerManager;
    myTorrentConfigurator = torrentConfigurator;
    mySecurityContext = securityContext;
    myTorrentSeeder = torrentSeeder;
    final String pagePath = "/admin/torrentSettings.html";
    authInterceptor.addPathBasedPermissionsChecker(pagePath, (holder, request) -> {
      if (!holder.isPermissionGrantedGlobally(Permission.CHANGE_SERVER_SETTINGS)) {
        throw new AccessDeniedException(holder, "You do not have enough permissions to access the torrent settings page");
      }
    });
    register();

    controllerManager.registerController(pagePath, new BaseController() {
      @Override
      protected ModelAndView doHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response) throws Exception {
        if (request.getParameter("save") != null) {
          boolean seedingEnabled = request.getParameter("seedingEnabled") != null;
          boolean downloadEnabled = request.getParameter("downloadEnabled") != null;
          boolean agentSeedingEnabled = request.getParameter("agentSeedingEnabled") != null;
          boolean agentDownloadEnabled = request.getParameter("agentDownloadEnabled") != null;
          myTorrentConfigurator.setSeedingEnabled(seedingEnabled);
          myTorrentConfigurator.setDownloadEnabled(downloadEnabled);
          myTorrentConfigurator.setAgentDownloadEnabled(agentDownloadEnabled);
          myTorrentConfigurator.setAgentSeedingEnabled(agentSeedingEnabled);
          myTorrentConfigurator.persistConfiguration();
        }
        return new ModelAndView(new RedirectView(request.getContextPath() + "/admin/admin.html?item=" + TAB_ID));
      }
    });
  }