# HG changeset patch # User Evgeniy.Koshkin # Date 1376310483 -14400 # Node ID 2ae714d6faa5c2500db31e6c0880e0d6789415aa # Parent 48b3a2443fd601555427a0edf994e02900f1cf4a global settings tab added diff -r 48b3a2443fd6 -r 2ae714d6faa5 server/resources/symbolServerSettings.jsp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/resources/symbolServerSettings.jsp Mon Aug 12 16:28:03 2013 +0400 @@ -0,0 +1,30 @@ +<%@ include file="/include-internal.jsp"%> + + + + + + + + + + + +
Symbol Server URL: + + +
Not available.
+ + Guest user is disabled. + + + You need to enable guest user login in TeamCity ">Authentication Settings for Symbol Server to work. + +
+ + + + Use this URL in Visual Studio and WinDbg settings. + +
+
\ No newline at end of file diff -r 48b3a2443fd6 -r 2ae714d6faa5 server/src/META-INF/build-server-plugin-symbol-server.xml --- a/server/src/META-INF/build-server-plugin-symbol-server.xml Fri Aug 09 16:19:21 2013 +0400 +++ b/server/src/META-INF/build-server-plugin-symbol-server.xml Mon Aug 12 16:28:03 2013 +0400 @@ -6,7 +6,9 @@ default-autowire="constructor" > + + diff -r 48b3a2443fd6 -r 2ae714d6faa5 server/src/jetbrains/buildServer/symbols/SymbolServerSettingsTab.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/jetbrains/buildServer/symbols/SymbolServerSettingsTab.java Mon Aug 12 16:28:03 2013 +0400 @@ -0,0 +1,78 @@ +/* + * Copyright 2000-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package jetbrains.buildServer.symbols; + +import jetbrains.buildServer.serverSide.auth.AuthUtil; +import jetbrains.buildServer.serverSide.auth.Permission; +import jetbrains.buildServer.serverSide.auth.SecurityContext; +import jetbrains.buildServer.serverSide.impl.ServerSettings; +import jetbrains.buildServer.web.openapi.PagePlaces; +import jetbrains.buildServer.web.openapi.PlaceId; +import jetbrains.buildServer.web.openapi.PluginDescriptor; +import jetbrains.buildServer.web.openapi.SimpleCustomTab; +import jetbrains.buildServer.web.util.WebUtil; +import org.jetbrains.annotations.NotNull; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +/** + * @author Evgeniy.Koshkin + */ +public class SymbolServerSettingsTab extends SimpleCustomTab { + + private static final String TAB_ID = "sourceServerSettingsTab"; + + @NotNull private final ServerSettings myServerSettings; + @NotNull private final SecurityContext mySecurityContext; + + public SymbolServerSettingsTab(@NotNull final PagePlaces pagePlaces, + @NotNull final ServerSettings serverSettings, + @NotNull final SecurityContext context, + @NotNull final PluginDescriptor descriptor) { + super(pagePlaces, + PlaceId.ADMIN_SERVER_CONFIGURATION_TAB, + TAB_ID, + descriptor.getPluginResourcesPath("symbolServerSettings.jsp"), + "Symbol Server"); + myServerSettings = serverSettings; + mySecurityContext = context; + register(); + } + + @Override + public boolean isVisible() { + return super.isVisible() && hasAccess(); + } + + @Override + public boolean isAvailable(@NotNull HttpServletRequest request) { + return super.isAvailable(request) && hasAccess(); + } + + @Override + public void fillModel(@NotNull Map model, @NotNull HttpServletRequest request) { + super.fillModel(model, request); + model.put("isGuestEnabled", myServerSettings.isGuestLoginAllowed()); + model.put("actualServerUrl", WebUtil.getRootUrl(request)); + model.put("publicFeedUrl", WebUtil.GUEST_AUTH_PREFIX + SymbolsConstants.APP_SYMBOLS); + } + + private boolean hasAccess() { + return AuthUtil.hasGlobalPermission(mySecurityContext.getAuthorityHolder(), Permission.CHANGE_SERVER_SETTINGS); + } +}