def dispatch(self, request, organization, provider): sp_metadata_url = absolute_uri( reverse("sentry-auth-organization-saml-metadata", args=[organization.slug])) if request.method != "POST": saml_form = SAMLForm(provider.config["idp"]) attr_mapping_form = AttributeMappingForm( provider.config["attribute_mapping"]) else: saml_form = SAMLForm(request.POST) attr_mapping_form = AttributeMappingForm(request.POST) if saml_form.is_valid() and attr_mapping_form.is_valid(): provider.config["idp"] = saml_form.cleaned_data provider.config[ "attr_mapping_form"] = attr_mapping_form.cleaned_data provider.save() return self.render( "sentry_auth_saml2/configure.html", { "sp_metadata_url": sp_metadata_url, "forms": { "saml": saml_form, "attrs": attr_mapping_form }, }, )
def handle(self, request: Request, helper) -> Response: if "save_mappings" not in request.POST: form = AttributeMappingForm() else: form = AttributeMappingForm(request.POST) if form.is_valid(): helper.bind_state("attribute_mapping", form.cleaned_data) return helper.next_step() return self.respond("sentry_auth_saml2/map-attributes.html", {"form": form})