def front_url(*args, query=None, absolute=True, auto_login=True, **kwargs): url = reverse(*args, urlconf="agir.api.front_urls", **kwargs) if absolute: url = urljoin(settings.FRONT_DOMAIN, url) if query: url = add_query_params_to_url(url, query) return AutoLoginUrl(url) if auto_login else url
def subscription_success_redirect_url(type, id, data): params = {"agir_id": str(id)} url = SUBSCRIPTION_SUCCESS_REDIRECT[type] if data.get("next", None): url = data.pop("next") params.update({f"agir_{k}": v for k, v in data.items()}) return add_query_params_to_url(url, params, as_fragment=True)
def test_can_retrieve_person_information_with_login_link(self): self.client.logout() params = generate_token_params(self.person) url = add_query_params_to_url( reverse("api_people_retrieve"), { "id": str(self.person.id), "no_session": "o", **params }, ) res = self.client.get(url) self.assertEqual(res.status_code, status.HTTP_200_OK)
def admin_url(viewname, args=None, kwargs=None, query=None, absolute=True): if not viewname.startswith("admin:"): viewname = f"admin:{viewname}" url = reverse(viewname, args=args, kwargs=kwargs, urlconf="agir.api.admin_urls") if absolute: url = urljoin(settings.API_DOMAIN, url) if query: url = add_query_params_to_url(url, query) return url
def get_redirect_url(self, *args, **kwargs): url = f"{settings.NSP_DOMAIN}/je-partage-mon-lien/" params = generate_token_params(self.request.user.person) params["_p"] = params.pop("p") # copier les paramètres UTM params.update({ k: v for k, v in self.request.GET.items() if k.startswith("utm_") }) url = add_query_params_to_url(url, params) return url
def dispatch(self, request, *args, **kwargs): token_params = self.get_signed_values() if not token_params: return self.link_error_page() self.email = token_params["email"] try: validate_email(self.email) except ValidationError: return self.link_error_page() # Cas spécial : la personne s'est déjà créé un compte entretemps # ==> redirection vers l'autre vue try: person = Person.objects.get_by_natural_key(self.email) except Person.DoesNotExist: pass else: params = { "person_id": str(person.id), "group_id": token_params["group_id"] } query_params = { **params, "token": invitation_confirmation_token_generator.make_token(**params), } return HttpResponseRedirect( add_query_params_to_url(reverse("invitation_confirmation"), query_params)) try: self.group = SupportGroup.objects.get( pk=UUID(token_params["group_id"])) except ValueError: # pas un UUID return self.link_error_page() except SupportGroup.DoesNotExist: # le groupe a disparu entre temps... self.group = None return super().dispatch(request, *args, **kwargs)
def get_redirect_url(self, *args, **kwargs): url = settings.NSP_DOMAIN if self.request.user.is_authenticated: person = self.request.user.person if person.is_2022: return url url = add_query_params_to_url( url, { "prenom": person.first_name, "nom": person.last_name, "email": person.email, "phone": person.contact_phone, "zipcode": person.location_zip, }, ) return url
def nsp_confirmed_url(id, data): params = {"agir_id": str(id)} params.update({"agir_{k}": v for k, v in data.items()}) url = urllib.parse.urljoin(settings.NSP_DOMAIN, "/signature-confirmee/") return add_query_params_to_url(url, params, as_fragment=True)