Exemple #1
0
    def save(self, request, **kwargs):

        email = self.cleaned_data["email"]
        token_generator = kwargs.get("token_generator",
                                     default_token_generator)

        for user in self.users:

            temp_key = token_generator.make_token(user)

            # save it to the password reset model
            # password_reset = PasswordReset(user=user, temp_key=temp_key)
            # password_reset.save()

            current_site = get_current_site(request)

            # send the password reset email
            path = reverse("account_reset_password_from_key",
                           kwargs=dict(uidb36=user_pk_to_url_str(user),
                                       key=temp_key))
            url = build_absolute_uri(
                request, path,
                protocol=app_settings.DEFAULT_HTTP_PROTOCOL)
            context = {"site": current_site,
                       "user": user,
                       "password_reset_url": url,
                       "request": request}
            if app_settings.AUTHENTICATION_METHOD \
                    != AuthenticationMethod.EMAIL:
                context['username'] = user_username(user)
            get_adapter().send_mail('account/email/password_reset_key',
                                    email,
                                    context)
        return self.cleaned_data["email"]
Exemple #2
0
 def setUp(self):
     if 'allauth.socialaccount' in settings.INSTALLED_APPS:
         # Otherwise ImproperlyConfigured exceptions may occur
         from ..socialaccount.models import SocialApp
         sa = SocialApp.objects.create(name='testfb',
                                       provider='facebook')
         sa.sites.add(get_current_site())
Exemple #3
0
	def get_current(self, provider, request=None):
		cache = {}
		if request:
			cache = getattr(request, '_socialapp_cache', {})
			request._socialapp_cache = cache
		app = cache.get(provider)
		if not app:
			site = get_current_site(request)
			apps = self.filter(
				sites__id=site.id,
				provider=provider).all()
			user_agent = request.META.get('HTTP_USER_AGENT', None)
			if user_agent is None:
				app = apps.first()
			else:
				for _ in apps:
					if _.key is not None and \
						len(_.key) > 0 and \
						_.key in user_agent:
						app = _
						break
			if app is None:
				app = apps.first()
			cache[provider] = app
		return app
Exemple #4
0
 def setUp(self):
     SocialApp = get_social_app_model()
     app = SocialApp.objects.create(provider='openid',
                                    name='openid',
                                    client_id='app123id',
                                    key='openid',
                                    secret='dummy')
     app.sites.add(get_current_site())
Exemple #5
0
 def test_email_escaping(self):
     site = get_current_site()
     site.name = '<enc&"test>'
     site.save()
     u = get_user_model().objects.create(username="******", email="*****@*****.**")
     request = RequestFactory().get("/")
     EmailAddress.objects.add_email(request, u, u.email, confirm=True)
     self.assertTrue(mail.outbox[0].subject[1:].startswith(site.name))
Exemple #6
0
 def setUp(self):
     super(ADFSTests, self).setUp()
     self.provider = providers.registry.by_id(self.provider_id)
     app = SocialApp.objects.create(provider=self.provider.id,
                                    name=self.provider.id,
                                    client_id='app123id',
                                    key=self.provider.id,
                                    secret='dummy')
     app.sites.add(get_current_site())
Exemple #7
0
 def state_from_request(cls, request):
     state = {}
     next_url = get_next_redirect_url(request)
     if next_url:
         state['next'] = next_url
     state['site'] = get_current_site(request).id
     state['process'] = get_request_param(request, 'process', 'login')
     state['scope'] = get_request_param(request, 'scope', '')
     state['auth_params'] = get_request_param(request, 'auth_params', '')
     return state
Exemple #8
0
 def get_current(self, provider, request=None):
     cache = {}
     if request:
         cache = getattr(request, '_socialapp_cache', {})
         request._socialapp_cache = cache
     app = cache.get(provider)
     if not app:
         site = get_current_site(request)
         app = self.get(
             sites__id=site.id,
             provider=provider)
         cache[provider] = app
     return app
Exemple #9
0
    def setUp(self):
        # workaround to create a session. see: https://code.djangoproject.com/ticket/11475
        User.objects.create_user('anakin', '*****@*****.**', 's1thrul3s')
        self.client.login(username='******', password='******')

        self.provider = providers.registry.by_id(DraugiemProvider.id)
        app = SocialApp.objects.create(provider=self.provider.id,
                                       name=self.provider.id,
                                       client_id='app123id',
                                       key=self.provider.id,
                                       secret='dummy')
        app.sites.add(get_current_site())
        self.app = app
    def send_confirmation_mail(self, request, emailconfirmation, signup):
        current_site = get_current_site(request)
        activation_url = self.get_email_confirmation_url(
            request, emailconfirmation)

        context = {
            'user': emailconfirmation.email_address.user,
            'activation_url': activation_url,
            'current_site': current_site
        }

        self.send_mail(
            self.mail_templates['email_confirmation'],
            emailconfirmation.email_address.email,
            context
        )
Exemple #11
0
 def send_confirmation_mail(self, request, emailconfirmation, signup):
     current_site = get_current_site(request)
     activate_url = self.get_email_confirmation_url(request, emailconfirmation)
     user = emailconfirmation.email_address.user
     ctx = {
         "user": user,
         "activate_url": activate_url,
         "current_site": current_site,
         "key": emailconfirmation.key,
     }
     if signup:
         if Organisation.objects.filter(user=user).exists():
             email_template = 'account/email/organisation_email_confirmation_signup'
         else:
             email_template = 'account/email/email_confirmation_signup'
     else:
         email_template = 'account/email/email_confirmation'
     self.send_mail(email_template,
                    emailconfirmation.email_address.email,
                    ctx)
Exemple #12
0
def setup_dummy_social_apps(sender, **kwargs):
    """
    `allauth` needs tokens for OAuth based providers. So let's
    setup some dummy tokens
    """
    request = kwargs.get('request')

    site = get_current_site(request)
    for provider in registry.get_list():
        if (isinstance(provider, OAuth2Provider)
            or isinstance(provider, OAuthProvider)):
            try:
                SocialApp.objects.get(provider=provider.id,
                                      sites=site)
            except SocialApp.DoesNotExist:
                print ("Installing dummy application credentials for %s."
                       " Authentication via this provider will not work"
                       " until you configure proper credentials via the"
                       " Django admin (`SocialApp` models)" % provider.id)
                app = SocialApp.objects.create(provider=provider.id,
                                               secret='secret',
                                               client_id='client-id',
                                               name='Dummy %s app' % provider.id)
                app.sites.add(site)
Exemple #13
0
 def get_current(self, provider, request=None):
     site = get_current_site(request)
     return self.get(sites__id=site.id,
                     provider=provider)
Exemple #14
0
 def get_current(self, provider, request=None):
     site = get_current_site(request)
     return self.get(sites__id=site.id, provider=provider)
Exemple #15
0
 def setUp(self):
     if 'allauth.socialaccount' in settings.INSTALLED_APPS:
         # Otherwise ImproperlyConfigured exceptions may occur
         from ..socialaccount.models import SocialApp
         sa = SocialApp.objects.create(name='testfb', provider='facebook')
         sa.sites.add(get_current_site())
Exemple #16
0
 def get_context_data(self, **kwargs):
     ret = super(SignupView, self).get_context_data(**kwargs)
     ret.update(dict(site=get_current_site(self.request),
                     account=self.sociallogin.account))
     return ret