diff --git a/lemur/auth/views.py b/lemur/auth/views.py index efc1cff4..47d26d7b 100644 --- a/lemur/auth/views.py +++ b/lemur/auth/views.py @@ -345,9 +345,16 @@ class OAuth2(Resource): user = user_service.get_by_email(profile['email']) metrics.send('successful_login', 'counter', 1) - # update their google 'roles' + # update with roles sent by identity provider roles = [] + if 'roles' in profile: + for group in profile['roles']: + role = role_service.get_by_name(group) + if not role: + role = role_service.create(group, description='This is a group configured by identity provider') + roles.append(role) + role = role_service.get_by_name(profile['email']) if not role: role = role_service.create(profile['email'], description='This is a user specific role')