# 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"%>
+
+
+
+
+
+
+
\ 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);
+ }
+}