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"]
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())
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
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())
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))
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())
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
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
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 )
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)
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)
def get_current(self, provider, request=None): site = get_current_site(request) return self.get(sites__id=site.id, provider=provider)
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