def authenticate(self, oauth2_session=None, **kwargs): if oauth2_session is None: # Not ours (password login) return None response = oauth2_session.get(settings.KOMPASSI_API_V2_USER_INFO_URL) response.raise_for_status() kompassi_user = response.json() # Non-editor users may not log in via OAuth2 if not STAFF_GROUPS.intersection(kompassi_user['groups']): return None user, created = User.objects.get_or_create(username=kompassi_user['username']) for key, value in user_attrs_from_kompassi(kompassi_user).items(): setattr(user, key, value) user.save() user_meta = UserMeta.get_for_user(user) for key, value in user_meta_attrs_from_kompassi(kompassi_user).items(): setattr(user_meta, key, value) user_meta.save() return user
def formatted_author(self): if self.author: return UserMeta.get_for_user(self.author).get_full_name() else: return u''