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();
}