Projet

Général

Profil

0001-authentic-agent-refactored-hobo_deploy-command-to-ge.patch

dernière version - Anonyme, 27 février 2018 15:52

Télécharger (3,33 ko)

Voir les différences:

Subject: [PATCH] authentic agent : refactored hobo_deploy command to get
 username/email/first_name/last_name from hobo.json and settings.ADMINS to
 create super-users (#21888)

 .../authentic2/management/commands/hobo_deploy.py  | 30 ++++++++++++----------
 1 file changed, 17 insertions(+), 13 deletions(-)
hobo/agent/authentic2/management/commands/hobo_deploy.py
38 38
            # Activate default translation
39 39
            activate(settings.LANGUAGE_CODE)
40 40

  
41
            # create hobo users in authentic to bootstrap (don't update them,
42
            # hobo is not a provisioning system)
41
            # create hobo super-users in authentic to bootstrap
43 42
            for user_dict in hobo_environment.get('users'):
43
                # create hobo users in authentic to bootstrap
44
                # (don't update them, hobo is not a provisioning system)
44 45
                user, created = get_user_model().objects.get_or_create(
46
                    defaults=user_dict,
45 47
                    username=user_dict.get('username'))
46 48
                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
49
                    #
51 50
                    try:
52
                        admin_name, admin_email = settings.ADMINS[0]
51
                        username, email = settings.ADMINS[0]
53 52
                    except (IndexError, ValueError):
54
                        admin_name, admin_email = ('Super Publik', 'admin@entrouvert.org')
55
                    if not user.email:
56
                        user.email = admin_email
53
                        # without username, we put default values
54
                        username = user_dict.get('username', 'admin')
55
                        email = user_dict.get('email', 'admin@entrouvert.org')
56

  
57
                    # to comply with some SP
57 58
                    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
59
                        user.first_name = username
60
                    if not user.email:
61
                        user.email = email
62
                    user.is_staff = True
63
                    user.is_superuser = True
60 64
                    user.save()
61 65

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