Пример #1
0
 def test_creates_audit_log_entry(self):
     request = self.make_request(user=self.user, method='GET')
     Destroyer.run(
         sentry_app=self.sentry_app,
         request=request,
     )
     assert AuditLogEntry.objects.filter(event=AuditLogEntryEvent.SENTRY_APP_REMOVE).exists()
Пример #2
0
 def test_passes_notify_false_if_app_internal(self, run):
     self.create_project(organization=self.org)
     internal = self.create_internal_integration(organization=self.org)
     Destroyer.run(sentry_app=internal, user=self.user)
     run.assert_called_with(
         install=internal.installations.first(), user=internal.proxy_user, notify=False
     )
Пример #3
0
 def test_creates_audit_log_entry(self):
     request = self.make_request(user=self.user, method='GET')
     Destroyer.run(
         user=self.user,
         sentry_app=self.sentry_app,
         request=request,
     )
     assert AuditLogEntry.objects.filter(event=AuditLogEntryEvent.SENTRY_APP_REMOVE).exists()
Пример #4
0
    def delete(self, request: Request, sentry_app) -> Response:
        if sentry_app.is_unpublished or sentry_app.is_internal:
            Destroyer.run(user=request.user,
                          sentry_app=sentry_app,
                          request=request)
            return Response(status=204)

        return Response({"detail": ["Published apps cannot be removed."]},
                        status=403)
Пример #5
0
    def disable_scim(self, user):
        from sentry.mediators.sentry_apps import Destroyer
        from sentry.models import SentryAppInstallationForProvider

        if self.flags.scim_enabled:
            install = SentryAppInstallationForProvider.objects.get(
                organization=self.organization, provider=f"{self.provider}_scim"
            )
            Destroyer.run(sentry_app=install.sentry_app_installation.sentry_app, user=user)
            self.flags.scim_enabled = False
Пример #6
0
    def delete(self, request, sentry_app):
        if not features.has('organizations:internal-catchall',
                            sentry_app.owner,
                            actor=request.user):
            return Response(status=404)

        if sentry_app.status == SentryAppStatus.UNPUBLISHED:
            Destroyer.run(sentry_app=sentry_app)
            return Response(status=204)

        return Response({'detail': ['Published apps cannot be removed.']},
                        status=403)
Пример #7
0
    def test_records_analytics(self, record):
        Destroyer.run(
            user=self.user,
            sentry_app=self.sentry_app,
            request=self.make_request(user=self.user, method="GET"),
        )

        record.assert_called_with(
            "sentry_app.deleted",
            user_id=self.user.id,
            organization_id=self.org.id,
            sentry_app=self.sentry_app.slug,
        )
Пример #8
0
    def test_records_analytics(self, record):
        Destroyer.run(
            user=self.user,
            sentry_app=self.sentry_app,
            request=self.make_request(user=self.user, method='GET'),
        )

        record.assert_called_with(
            'sentry_app.deleted',
            user_id=self.user.id,
            organization_id=self.org.id,
            sentry_app=self.sentry_app.slug,
        )
Пример #9
0
    def delete(self, request, sentry_app):
        if not features.has("organizations:sentry-apps",
                            sentry_app.owner,
                            actor=request.user):
            return Response(status=404)

        if sentry_app.is_unpublished or sentry_app.is_internal:
            Destroyer.run(user=request.user,
                          sentry_app=sentry_app,
                          request=request)
            return Response(status=204)

        return Response({"detail": ["Published apps cannot be removed."]},
                        status=403)
Пример #10
0
    def delete(self, request, sentry_app):
        if not features.has('organizations:internal-catchall',
                            sentry_app.owner,
                            actor=request.user):
            return Response(status=404)

        if sentry_app.status == SentryAppStatus.UNPUBLISHED:
            Destroyer.run(sentry_app=sentry_app)
            return Response(status=204)

        return Response(
            {
                'detail': ['Published apps cannot be removed.']
            },
            status=403
        )