in server/src/jetbrains/buildServer/swabra/serverHealth/SwabraFrequentCleanCheckoutReport.java [38:69]
public SwabraFrequentCleanCheckoutReport(@NotNull final PluginDescriptor descriptor,
@NotNull final PagePlaces pagePlaces,
@NotNull final WebLinks webLinks,
@NotNull ProjectManager projectManager,
@NotNull SwabraCleanCheckoutWatcher watcher) {
final HealthStatusItemPageExtension pageExtension = new HealthStatusItemPageExtension(SWABRA_FREQUENT_CLEAN_CHECKOUT_TYPE, pagePlaces) {
@Override
public boolean isAvailable(@NotNull final HttpServletRequest request) {
if (super.isAvailable(request)) {
final SUser user = SessionUser.getUser(request);
if (user != null) {
final HealthStatusItem item = getStatusItem(request);
//noinspection unchecked
for (SBuildType bt : getBuildTypes((List<SwabraSettingsGroup>)item.getAdditionalData().get(SWABRA_CLASHING_BUILD_TYPES)) ){
if (user.getPermissionsGrantedForProject(bt.getProjectId()).contains(Permission.EDIT_PROJECT)) {
return true;
}
}
}
}
return false;
}
};
pageExtension.setIncludeUrl(descriptor.getPluginResourcesPath("swabraClashingBuildTypes.jsp"));
pageExtension.setVisibleOutsideAdminArea(true);
pageExtension.register();
myCategory = new ItemCategory(SWABRA_FREQUENT_CLEAN_CHECKOUT_TYPE, CATEGORY_NAME, ItemSeverity.INFO, CATEGORY_DESCRIPTION, webLinks.getHelp("Build Files Cleaner (Swabra)"));
myProjectManager = projectManager;
myWatcher = watcher;
}