public UsageStatisticsController()

in usage-statistics-impl/src/jetbrains/buildServer/controllers/UsageStatisticsController.java [46:98]


  public UsageStatisticsController(@NotNull final SBuildServer server,
                                   @NotNull final AuthorizationInterceptor authInterceptor,
                                   @NotNull final WebControllerManager webControllerManager,
                                   @NotNull final PluginDescriptor pluginDescriptor,
                                   @NotNull final PagePlaces pagePlaces,
                                   @NotNull final AuditLogFactory auditLogFactory,
                                   @NotNull final UsageStatisticsSettingsPersistor settingsPersistor,
                                   @NotNull final UsageStatisticsCommonDataPersistor dataPersistor,
                                   @NotNull final UsageStatisticsCollector statisticsCollector,
                                   @NotNull final UsageStatisticsPresentationManagerEx presentationManager,
                                   @NotNull final SecurityContextEx securityContext) {
    super(server);

    myPermissionsCheckerSupplier = server.getStampedExtensionsSupplier(UsageStatisticsPermissionsChecker.class, extenstions -> {
      for (UsageStatisticsPermissionsChecker checker : extenstions.data) {
        if (checker.getClass().getName().equals(extenstions.context)) {
          return checker;
        }
      }

      return myDefaultPermissionsChecker;
    });

    mySettingsPersistor = settingsPersistor;
    myDataPersistor = dataPersistor;
    myStatisticsCollector = statisticsCollector;
    myPresentationManager = presentationManager;
    myAuditLog = auditLogFactory.createForServer();
    myJspPagePath = pluginDescriptor.getPluginResourcesPath("usageStatistics.jsp");
    mySecurityContext = securityContext;

    UsageStatisticsControllerUtil.register(this, authInterceptor, webControllerManager, "/admin/usageStatistics.html");

    final SimpleCustomTab tab = new AdminPage(pagePlaces) {
      @Override
      public boolean isAvailable(@NotNull final HttpServletRequest request) {
        return super.isAvailable(request) && checkHasGlobalPermissions(request, Permission.VIEW_USAGE_STATISTICS);
      }

      @NotNull
      public String getGroup() {
        return SERVER_RELATED_GROUP;
      }
    };
    tab.addCssFile(pluginDescriptor.getPluginResourcesPath("css/usageStatistics.css"));
    tab.addCssFile("/css/settingsBlock.css");
    tab.addJsFile(pluginDescriptor.getPluginResourcesPath("js/usageStatistics.js"));
    tab.setPluginName(USAGE_STATISTICS_ITEM_VALUE);
    tab.setIncludeUrl(pluginDescriptor.getPluginResourcesPath("usageStatisticsTab.jsp"));
    tab.setTabTitle("Usage Statistics");
    tab.setPosition(PositionConstraint.after("license"));
    tab.register();
  }