about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/utility/elasticsearch_tools.py16
-rw-r--r--wqflask/wqflask/templates/new_security/login_user.html25
-rw-r--r--wqflask/wqflask/user_manager.py6
3 files changed, 36 insertions, 11 deletions
diff --git a/wqflask/utility/elasticsearch_tools.py b/wqflask/utility/elasticsearch_tools.py
index c2c999ea..8b8ad9cc 100644
--- a/wqflask/utility/elasticsearch_tools.py
+++ b/wqflask/utility/elasticsearch_tools.py
@@ -1,10 +1,14 @@
-from elasticsearch import Elasticsearch, TransportError
-from utility.tools import ELASTICSEARCH_HOST, ELASTICSEARCH_PORT
+es = None
+try:
+    from elasticsearch import Elasticsearch, TransportError
+    from utility.tools import ELASTICSEARCH_HOST, ELASTICSEARCH_PORT
 
-es = Elasticsearch([{
-    "host": ELASTICSEARCH_HOST
-    , "port": ELASTICSEARCH_PORT
-}]) 
+    es = Elasticsearch([{
+        "host": ELASTICSEARCH_HOST
+        , "port": ELASTICSEARCH_PORT
+    }]) if (ELASTICSEARCH_HOST and ELASTICSEARCH_PORT) else None
+except:
+    es = None
 
 def get_user_by_unique_column(column_name, column_value):
     user_details = None
diff --git a/wqflask/wqflask/templates/new_security/login_user.html b/wqflask/wqflask/templates/new_security/login_user.html
index 15f0a27e..0dae3503 100644
--- a/wqflask/wqflask/templates/new_security/login_user.html
+++ b/wqflask/wqflask/templates/new_security/login_user.html
@@ -16,7 +16,14 @@
             <h4>Don't have an account?</h4>
 
 
-            <a href="/n/register" class="btn btn-primary modalize">Create a new account</a>
+            {% if es_server: %}
+	    <a href="/n/register" class="btn btn-primary modalize">Create a new account</a>
+	    {% else: %}
+	    <div class="alert alert-warning">
+	      <p>You cannot create an account at this moment.<br />
+		Please try again later.</p>
+	    </div>
+	    {% endif %}
 
 	    <hr />
 	    <h4>Login with external services</h4>
@@ -31,13 +38,17 @@
 	      <a href="{{external_login['orcid']}}" title="Login with ORCID" class="btn btn-info btn-group">Login with ORCID</a>
 	      {% endif %}
 	    </div>
-
-	    <hr />
+	    {% else: %}
+	    <div class="alert alert-warning">
+	      <p>You cannot login with external services at this time.<br />
+		Please try again later.</p>
+	    </div>
 	    {% endif %}
+	    <hr />
 
             <h4>Already have an account? Sign in here.</h4>
 
-
+	    {% if es_server: %}
             <form class="form-horizontal" action="/n/login" method="POST" name="login_user_form" id="loginUserForm">
                  <fieldset>
                     <div class="form-group">
@@ -75,6 +86,12 @@
               </fieldset>
 
             </form>
+	    {% else: %}
+	    <div class="alert alert-warning">
+	      <p>You cannot login at this moment using your GeneNetwork account.<br />
+		Please try again later.</p>
+	    </div>
+	    {% endif %}
         </div>
     </div>
 
diff --git a/wqflask/wqflask/user_manager.py b/wqflask/wqflask/user_manager.py
index 4322945b..772d6c83 100644
--- a/wqflask/wqflask/user_manager.py
+++ b/wqflask/wqflask/user_manager.py
@@ -585,13 +585,17 @@ class LoginUser(object):
         logger.debug("in login params are:", params)
         if not params:
             from utility.tools import GITHUB_AUTH_URL, ORCID_AUTH_URL
+            from utility.elasticsearch_tools import es
             external_login = None
             if GITHUB_AUTH_URL or ORCID_AUTH_URL:
                 external_login={
                     "github": GITHUB_AUTH_URL,
                     "orcid": ORCID_AUTH_URL
                 }
-            return render_template("new_security/login_user.html", external_login=external_login)
+            return render_template(
+                "new_security/login_user.html"
+                , external_login=external_login
+                , es_server=es)
         else:
             user_details = get_user_by_unique_column("email_address", params["email_address"])
             user = None