From 3cb7dec3b79d51fc3875cd8584539ef322b9b546 Mon Sep 17 00:00:00 2001 From: Elias Showk Date: Fri, 23 Feb 2018 17:11:12 +0100 Subject: [PATCH] authentic hobo_deploy use email and first_name from hobo.json and settings.ADMINS for superusers (#21888) --- .../authentic2/management/commands/hobo_deploy.py | 37 +++++++++++----------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/hobo/agent/authentic2/management/commands/hobo_deploy.py b/hobo/agent/authentic2/management/commands/hobo_deploy.py index f0e6030..430821b 100644 --- a/hobo/agent/authentic2/management/commands/hobo_deploy.py +++ b/hobo/agent/authentic2/management/commands/hobo_deploy.py @@ -37,27 +37,26 @@ class Command(hobo_deploy.Command): with tenant_context(tenant): # Activate default translation activate(settings.LANGUAGE_CODE) - - # create hobo users in authentic to bootstrap (don't update them, - # hobo is not a provisioning system) for user_dict in hobo_environment.get('users'): - user, created = get_user_model().objects.get_or_create( - username=user_dict.get('username')) - if created: - for key, value in user_dict.items(): - setattr(user, key, value) - user.is_staff = True - user.is_superuser = True + # create hobo users in authentic to bootstrap + # (don't update them, hobo is not a provisioning system) + if not user_dict.get('email'): + # get an email for settings, or default to system try: - admin_name, admin_email = settings.ADMINS[0] + user_dict['email'] = settings.ADMINS[0][1] except (IndexError, ValueError): - admin_name, admin_email = ('Super Publik', 'admin@entrouvert.org') - if not user.email: - user.email = admin_email - if not user.first_name and not user.last_name: - # give a name as it's required by some SP - user.first_name = admin_name - user.save() + user_dict['email'] = 'root@localhost' + + if not (user_dict.get('first_name') or user_dict.get('last_name')): + # some SP require a name + user_dict['first_name'] = user_dict['username'] + + user_dict['is_staff'] = True + user_dict['is_superuser'] = True + + user, created = get_user_model().objects.get_or_create( + defaults=user_dict, + username=user_dict['username']) # create/update user attributes fields = [] @@ -124,7 +123,7 @@ class Command(hobo_deploy.Command): metadata_response = requests.get( sp_url, verify=app_settings.A2_VERIFY_SSL, timeout=5) metadata_response.raise_for_status() - except requests.exceptions.RequestException, e: + except requests.exceptions.RequestException as e: self.stderr.write(self.style.WARNING( 'Error registering %s: %r\n' % (sp_url, e))) continue -- 2.16.1