authentic hobo_deploy use email and first_name from hobo.json and settings.ADMINS for superusers (#21888)

This commit is contained in:
Elias Showk 2018-02-23 17:11:12 +01:00
parent 0962606c02
commit 67e421e2db
1 changed files with 18 additions and 19 deletions

View File

@ -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