Example #1
0
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
Example #2
0
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)
Example #4
0
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
Example #6
0
    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)