about summary refs log tree commit diff
path: root/wqflask
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask')
-rw-r--r--wqflask/utility/authentication_tools.py7
-rw-r--r--wqflask/wqflask/group_manager.py17
-rw-r--r--wqflask/wqflask/user_login.py6
-rw-r--r--wqflask/wqflask/views.py5
4 files changed, 29 insertions, 6 deletions
diff --git a/wqflask/utility/authentication_tools.py b/wqflask/utility/authentication_tools.py
index 73c39399..68bbb276 100644
--- a/wqflask/utility/authentication_tools.py
+++ b/wqflask/utility/authentication_tools.py
@@ -77,7 +77,10 @@ def add_new_resource(dataset, trait_id=None):
 
 def get_group_code(dataset):
     results = g.db.execute("SELECT InbredSetCode from InbredSet where Name='{}'".format(dataset.group.name)).fetchone()
-    return results[0]
+    if results[0]:
+        return results[0]
+    else:
+        return ""
 
 def check_admin(resource_id=None):
     the_url = "http://localhost:8080/available?resource={}&user={}".format(resource_id, g.user_session.user_id)
@@ -85,7 +88,7 @@ def check_admin(resource_id=None):
         response = json.loads(requests.get(the_url).content)['admin']
     except:
         resource_info = get_resource_info(resource_id)
-        response = resource_info['default_mask']['admin']
+l        response = resource_info['default_mask']['admin']
 
     if 'edit-admins' in response:
         return "edit-admins"
diff --git a/wqflask/wqflask/group_manager.py b/wqflask/wqflask/group_manager.py
index e6079c3e..69ee9623 100644
--- a/wqflask/wqflask/group_manager.py
+++ b/wqflask/wqflask/group_manager.py
@@ -1,10 +1,12 @@
+import random, string
+
 from flask import (Flask, g, render_template, url_for, request, make_response,
                    redirect, flash)
 
 from wqflask import app
-from wqflask.user_login import send_verification_email
+from wqflask.user_login import send_verification_email, send_invitation_email, basic_info, set_password
 
-from utility.redis_tools import get_user_groups, get_group_info, create_group, delete_group, add_users_to_group, remove_users_from_group, \
+from utility.redis_tools import get_user_groups, get_group_info, save_user, create_group, delete_group, add_users_to_group, remove_users_from_group, \
                                 change_group_name, save_verification_code, check_verification_code, get_user_by_unique_column, get_resources, get_resource_info
 
 from utility.logger import getLogger
@@ -138,5 +140,16 @@ def send_group_invites(group_id, user_email_list = [], user_type="members"):
                continue
             else:
                send_verification_email(user_details, template_name = "email/group_verification.txt", key_prefix = "verification_code", subject = "You've been invited to join a GeneNetwork user group")
+      else:
+         temp_password = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(6))
+         user_details = {
+            'user_id': str(uuid.uuid4()),
+            'email_address': user_email,
+            'registration_info': basic_info(),
+            'password': set_password(temp_password),
+            'confirmed': 0
+         }
+         save_user(user_details, user_details['user_id'])
+         send_invitation_email(user_email, temp_password)
 
 #@app.route()
diff --git a/wqflask/wqflask/user_login.py b/wqflask/wqflask/user_login.py
index 10cb7319..28d58712 100644
--- a/wqflask/wqflask/user_login.py
+++ b/wqflask/wqflask/user_login.py
@@ -137,6 +137,12 @@ def send_verification_email(user_details, template_name = "email/user_verificati
     send_email(recipient, subject, body)
     return {"recipient": recipient, "subject": subject, "body": body}
 
+def send_invitation_email(user_email, temp_password, template_name = "email/user_invitation.txt",  subject = "You've been added to a GeneNetwork user group"):
+    recipient = user_email
+    body = render_template(template_name, temp_password)
+    send_email(recipient, subject, body)
+    return {"recipient": recipient, "subject": subject, "body": body}
+
 @app.route("/manage/verify_email")
 def verify_email():
     if 'code' in request.args:
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 557ff523..0c8c23f3 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -413,6 +413,9 @@ def export_traits_csv():
     file_list = export_traits.export_search_results_csv(request.form)
 
     if len(file_list) > 1:
+        now = datetime.datetime.now()
+        time_str = now.strftime('%H:%M_%d%B%Y')
+        filename = "export_{}".format(time_str)
         memory_file = io.StringIO()
         with ZipFile(memory_file, mode='w', compression=ZIP_DEFLATED) as zf:
             for the_file in file_list:
@@ -920,8 +923,6 @@ def browser_inputs():
 
     return flask.jsonify(file_contents)
 
-
-
 ##########################################################################
 
 def json_default_handler(obj):