From 9dba3b930a9ee94320bcf289c469d0cab0d36c3b Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Wed, 21 Jan 2015 13:06:17 +0000
Subject: [PATCH] SSDM-1340 : Disable Login via a nologin file

SVN: 33295
---
 .../web/client/ICommonClientService.java      |  4 ++++
 .../web/client/ICommonClientServiceAsync.java |  5 +++++
 .../application/framework/LoginPage.java      | 22 +++++++++++++++++++
 .../web/server/CommonClientService.java       |  6 +++++
 .../openbis/generic/server/CommonServer.java  |  6 +++++
 .../generic/server/CommonServerLogger.java    |  7 ++++++
 .../openbis/generic/shared/ICommonServer.java |  5 +++++
 7 files changed, 55 insertions(+)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
index b1b62954ddd..58d3e4accf0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
@@ -1291,4 +1291,8 @@ public interface ICommonClientService extends IClientService
      */
     public List<String> listPredeployedPlugins(ScriptType scriptType);
 
+    /**
+     * Gets text for front page if the AS is disabled, null otherwise.
+     */
+    public String getDisabledText();
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
index 577af9a1719..59dac0eb1ac 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java
@@ -1182,4 +1182,9 @@ public interface ICommonClientServiceAsync extends IClientServiceAsync
      * @see ICommonClientService#listPredeployedPlugins(ScriptType)
      */
     public void listPredeployedPlugins(ScriptType scriptType, AsyncCallback<List<String>> callback);
+    
+    /**
+     * @see ICommonClientService#getDisabledText()
+     */
+    public void getDisabledText(AsyncCallback<String> callback);
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/LoginPage.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/LoginPage.java
index 15a9d76f5e0..52a1e7fdf71 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/LoginPage.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/LoginPage.java
@@ -20,6 +20,7 @@ import java.util.Date;
 
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.dom.client.Element;
+import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.CellPanel;
 import com.google.gwt.user.client.ui.DockPanel;
@@ -70,6 +71,27 @@ final class LoginPage extends com.google.gwt.user.client.ui.VerticalPanel
         }
         welcomePanel.setStyleName("login-welcome-text");
         final CellPanel northPanel = createNorthPanel();
+        
+        final HorizontalPanel topPanel = new HorizontalPanel();
+        northPanel.add(topPanel);
+        
+        viewContext.getCommonService().getDisabledText(new AsyncCallback<String>() {
+            
+            @Override
+            public void onFailure(Throwable caught)
+            {
+                // TODO Auto-generated method stub
+            }
+
+            @Override
+            public void onSuccess(String result)
+            {
+                topPanel.add(new HTML(result +"<br>"));
+            }
+            
+        });
+        
+        
         northPanel.add(logo);
         northPanel.add(welcomePanel);
         add(getBannersPage());
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
index 2609af98340..4505790890b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
@@ -2907,4 +2907,10 @@ public final class CommonClientService extends AbstractClientService implements
     {
         return commonServer.listPredeployedPlugins(getSessionToken(), scriptType);
     }
+
+    @Override
+    public String getDisabledText()
+    {
+        return commonServer.getDisabledText();
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
index 38d278e49f5..ae8373e1a52 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
@@ -49,6 +49,7 @@ import ch.systemsx.cisd.common.properties.PropertyParametersUtil;
 import ch.systemsx.cisd.common.properties.PropertyParametersUtil.SectionProperties;
 import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext;
 import ch.systemsx.cisd.openbis.common.spring.IInvocationLoggerContext;
+import ch.systemsx.cisd.openbis.generic.server.authorization.AuthorizationBean;
 import ch.systemsx.cisd.openbis.generic.server.authorization.AuthorizationServiceUtils;
 import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.AuthorizationGuard;
 import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.Capability;
@@ -4569,4 +4570,9 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt
 
         return null;
     }
+    
+    @Override
+    public String getDisabledText() {
+        return AuthorizationBean.getInstance().getDisabledText();
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
index 567f0640289..2be5b86c2fb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java
@@ -1832,4 +1832,11 @@ final class CommonServerLogger extends AbstractServerLogger implements ICommonSe
     {
         logAccess(sessionToken, "invalidate_predeployed_plugin", "NAME(%s)", name);
     }
+
+    @Override
+    public String getDisabledText()
+    {
+        logAccess(null, "getDisabledText");
+        return null;
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java
index f7da8946ccd..d391dc59d45 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java
@@ -1600,4 +1600,9 @@ public interface ICommonServer extends IServer
      */
     @Transactional(readOnly = true)
     public List<String> listPredeployedPlugins(String sessionToken, ScriptType scriptType);
+    
+    /**
+     * Gets text for front page if the AS is disabled, null otherwise.
+     */
+    public String getDisabledText();
 }
-- 
GitLab