Projet

Général

Profil

0001-simplify-workflow-in-DefaultAdapter.lookup_user-3373.patch

Benjamin Dauvergne, 06 juin 2019 15:20

Télécharger (2,6 ko)

Voir les différences:

Subject: [PATCH 1/3] simplify workflow in DefaultAdapter.lookup_user()
 (#33739)

 mellon/adapters.py | 39 +++++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 18 deletions(-)
mellon/adapters.py
130 130
            return User.objects.get(saml_identifiers__name_id=name_id,
131 131
                                    saml_identifiers__issuer=issuer)
132 132
        except User.DoesNotExist:
133
            if not utils.get_setting(idp, 'PROVISION'):
134
                self.logger.warning('provisionning disabled, login refused')
135
                return None
136
            user = self.create_user(User)
137
            saml_id, created = models.UserSAMLIdentifier.objects.get_or_create(
138
                name_id=name_id, issuer=issuer, defaults={'user': user})
139
            if created:
140
                try:
141
                    self.finish_create_user(idp, saml_attributes, user)
142
                except UserCreationError:
143
                    user.delete()
144
                    return None
145
                self.logger.info('created new user %s with name_id %s from issuer %s',
146
                                 user, name_id, issuer)
147
            else:
133
            pass
134

  
135
        if not utils.get_setting(idp, 'PROVISION'):
136
            self.logger.warning('provisionning disabled, login refused')
137
            return None
138

  
139
        user = self.create_user(User)
140
        saml_id, created = models.UserSAMLIdentifier.objects.get_or_create(
141
            name_id=name_id, issuer=issuer, defaults={'user': user})
142
        if created:
143
            try:
144
                self.finish_create_user(idp, saml_attributes, user)
145
            except UserCreationError:
148 146
                user.delete()
149
                user = saml_id.user
150
                self.logger.info('looked up user %s with name_id %s from issuer %s',
151
                                 user, name_id, issuer)
147
                return None
148
            self.logger.info('created new user %s with name_id %s from issuer %s',
149
                             user, name_id, issuer)
150
        else:
151
            user.delete()
152
            user = saml_id.user
153
            self.logger.info('looked up user %s with name_id %s from issuer %s',
154
                             user, name_id, issuer)
152 155
        return user
153 156

  
154 157
    def provision(self, user, idp, saml_attributes):
155
-