Esempio n. 1
0
    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
Esempio n. 2
0
 def formatted_author(self):
     if self.author:
         return UserMeta.get_for_user(self.author).get_full_name()
     else:
         return u''