django-allauth-ens/allauth_ens/providers/clipper/provider.py
Aurélien Delobelle 7932da906e Minor changes
Introduce new settings:
- ACCOUNT_HOME_URL, used by 'Site name' link on templates.
- ACCOUNT_DETAILS_URL, used on templates when user is connected.

'username' is registered as extra_data too for Clipper provider.

Template tag 'get_accounts_by_providers' is cleaner.

Remove useless account/settings view. Its content should be displayed
by some profile view.

SOCIALACCOUNT_ENABLED settings (of allauth package) doesn't work well.
Template tag 'is_socialaccount_enabled' provides a better check.
2017-09-16 02:33:40 +02:00

43 lines
1.1 KiB
Python

# -*- coding: utf-8 -*-
from allauth.account.models import EmailAddress
from allauth.socialaccount.providers.base import ProviderAccount
from allauth_cas.providers import CASProvider
class ClipperAccount(ProviderAccount):
pass
class ClipperProvider(CASProvider):
id = 'clipper'
name = 'Clipper'
account_class = ClipperAccount
def extract_email(self, data):
username, _, _ = data
return '{}@clipper.ens.fr'.format(username)
def extract_common_fields(self, data):
common = super(ClipperProvider, self).extract_common_fields(data)
common['email'] = self.extract_email(data)
return common
def extract_email_addresses(self, data):
email = self.extract_email(data)
return [
EmailAddress(
email=email,
verified=True,
primary=True,
)
]
def extract_extra_data(self, data):
extra = super(ClipperProvider, self).extract_extra_data(data)
extra['username'] = data[0]
extra['email'] = self.extract_email(data)
return extra
provider_classes = [ClipperProvider]