Browse Source

ref: fix noisy provider not found error (#54983)

resolves https://sentry.sentry.io/issues/3981037705
anthony sottile 1 year ago
parent
commit
d07e5f2007

+ 0 - 1
pyproject.toml

@@ -824,7 +824,6 @@ module = [
     "sentry.web.frontend.newest_issue",
     "sentry.web.frontend.oauth_authorize",
     "sentry.web.frontend.oauth_token",
-    "sentry.web.frontend.organization_auth_settings",
     "sentry.web.frontend.organization_integration_setup",
     "sentry.web.frontend.out",
     "sentry.web.frontend.pipeline_advancer",

+ 1 - 1
src/sentry/auth/manager.py

@@ -20,7 +20,7 @@ class ProviderManager:
             raise ProviderNotRegistered(key)
         return cls(key=key, **kwargs)
 
-    def exists(self, key):
+    def exists(self, key: str) -> bool:
         return key in self.__values
 
     def register(self, key, cls):

+ 5 - 4
src/sentry/web/frontend/organization_auth_settings.py

@@ -4,7 +4,8 @@ from django import forms
 from django.contrib import messages
 from django.db import router, transaction
 from django.db.models import F
-from django.http import HttpResponse, HttpResponseRedirect
+from django.http import HttpResponseRedirect
+from django.http.response import HttpResponse, HttpResponseBadRequest, HttpResponseBase
 from django.urls import reverse
 from django.utils.translation import gettext_lazy as _
 from rest_framework.request import Request
@@ -212,7 +213,7 @@ class OrganizationAuthSettingsView(ControlSiloOrganizationView):
 
         return self.respond("sentry/organization-auth-provider-settings.html", context)
 
-    def handle(self, request: Request, organization: RpcOrganization) -> HttpResponse:
+    def handle(self, request: Request, organization: RpcOrganization) -> HttpResponseBase:  # type: ignore[override]
         providers = auth_service.get_auth_providers(organization_id=organization.id)
         if providers:
             # if the org has SSO set up already, allow them to modify the existing provider
@@ -224,8 +225,8 @@ class OrganizationAuthSettingsView(ControlSiloOrganizationView):
 
         if request.method == "POST":
             provider_key = request.POST.get("provider")
-            if not manager.exists(provider_key):
-                raise ValueError(f"Provider not found: {provider_key}")
+            if provider_key is None or not manager.exists(provider_key):
+                return HttpResponseBadRequest()
 
             helper = AuthHelper(
                 request=request,