diff --git a/sentry_ldap_auth/backend.py b/sentry_ldap_auth/backend.py index 5d9ed1c..9798c30 100644 --- a/sentry_ldap_auth/backend.py +++ b/sentry_ldap_auth/backend.py @@ -24,11 +24,21 @@ def get_or_create_user(self, username, ldap_user): except ImportError: pass else: - userEmail = UserEmail.objects.get(user=user) + userEmail = UserEmail.objects.filter(user=user) if not userEmail: userEmail = UserEmail.objects.create(user=user) + else: + userEmail = userEmail[0] - userEmail.email=ldap_user.attrs.get('mail', ' ')[0] or '' + if not hasattr(settings, 'AUTH_LDAP_DEFAULT_EMAIL_DOMAIN'): + email = ' ' + else: + email = username + '@' + settings.AUTH_LDAP_DEFAULT_EMAIL_DOMAIN + + if 'mail' in ldap_user.attrs: + userEmail.email = ldap_user.attrs.get('mail')[0] + else: + userEmail.email = email userEmail.save() # Check to see if we need to add the user to an organization