authentic hobo_deploy use email and first_name from hobo.json and settings.ADMINS for superusers (#21888)
This commit is contained in:
parent
0962606c02
commit
67e421e2db
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue