Projet

Général

Profil

0001-authentic-hobo_deploy-use-email-and-first_name-from-.patch

Anonyme, 01 mars 2018 17:52

Télécharger (3,38 ko)

Voir les différences:

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(-)
hobo/agent/authentic2/management/commands/hobo_deploy.py
37 37
        with tenant_context(tenant):
38 38
            # Activate default translation
39 39
            activate(settings.LANGUAGE_CODE)
40

  
41
            # create hobo users in authentic to bootstrap (don't update them,
42
            # hobo is not a provisioning system)
43 40
            for user_dict in hobo_environment.get('users'):
44
                user, created = get_user_model().objects.get_or_create(
45
                    username=user_dict.get('username'))
46
                if created:
47
                    for key, value in user_dict.items():
48
                        setattr(user, key, value)
49
                    user.is_staff = True
50
                    user.is_superuser = True
41
                # create hobo users in authentic to bootstrap
42
                # (don't update them, hobo is not a provisioning system)
43
                if not user_dict.get('email'):
44
                    # get an email for settings, or default to system
51 45
                    try:
52
                        admin_name, admin_email = settings.ADMINS[0]
46
                        user_dict['email'] = settings.ADMINS[0][1]
53 47
                    except (IndexError, ValueError):
54
                        admin_name, admin_email = ('Super Publik', 'admin@entrouvert.org')
55
                    if not user.email:
56
                        user.email = admin_email
57
                    if not user.first_name and not user.last_name:
58
                        # give a name as it's required by some SP
59
                        user.first_name = admin_name
60
                    user.save()
48
                        user_dict['email'] = 'root@localhost'
49

  
50
                if not (user_dict.get('first_name') or user_dict.get('last_name')):
51
                    # some SP require a name
52
                    user_dict['first_name'] = user_dict['username']
53

  
54
                user_dict['is_staff'] = True
55
                user_dict['is_superuser'] = True
56

  
57
                user, created = get_user_model().objects.get_or_create(
58
                    defaults=user_dict,
59
                    username=user_dict['username'])
61 60

  
62 61
            # create/update user attributes
63 62
            fields = []
......
124 123
                    metadata_response = requests.get(
125 124
                        sp_url, verify=app_settings.A2_VERIFY_SSL, timeout=5)
126 125
                    metadata_response.raise_for_status()
127
                except requests.exceptions.RequestException, e:
126
                except requests.exceptions.RequestException as e:
128 127
                    self.stderr.write(self.style.WARNING(
129 128
                        'Error registering %s: %r\n' % (sp_url, e)))
130 129
                    continue
131
-