|
@@ -53,6 +53,17 @@ def actor_from_audit_entry(entry: AuditLogEntry) -> RpcAuditLogEntryActor:
|
|
|
)
|
|
|
|
|
|
|
|
|
+def _org_id(org: Organization | RpcOrganization | None, org_id: int | None) -> int:
|
|
|
+ if org is not None and org_id is not None:
|
|
|
+ raise TypeError("expected organization=... or organization_id=... not both!")
|
|
|
+ elif org is not None:
|
|
|
+ return org.id
|
|
|
+ elif org_id is not None:
|
|
|
+ return org_id
|
|
|
+ else:
|
|
|
+ raise TypeError("expected organization=... or organization_id=...")
|
|
|
+
|
|
|
+
|
|
|
def create_audit_entry_from_user(
|
|
|
user: User | RpcUser | None,
|
|
|
api_key: ApiKey | None = None,
|
|
@@ -63,9 +74,7 @@ def create_audit_entry_from_user(
|
|
|
organization_id: int | None = None,
|
|
|
**kwargs: Any,
|
|
|
) -> AuditLogEntry:
|
|
|
- if organization:
|
|
|
- assert organization_id is None
|
|
|
- organization_id = organization.id
|
|
|
+ organization_id = _org_id(organization, organization_id)
|
|
|
|
|
|
entry = AuditLogEntry(
|
|
|
actor_id=user.id if user else None,
|
|
@@ -203,10 +212,7 @@ def create_system_audit_entry(
|
|
|
Creates an audit log entry for events that are triggered by Sentry's
|
|
|
systems and do not have an associated Sentry user as the "actor".
|
|
|
"""
|
|
|
- if organization:
|
|
|
- assert organization_id is None
|
|
|
- organization_id = organization.id
|
|
|
-
|
|
|
+ organization_id = _org_id(organization, organization_id)
|
|
|
entry = AuditLogEntry(actor_label="Sentry", organization_id=organization_id, **kwargs)
|
|
|
if entry.event is not None:
|
|
|
log_service.record_audit_log(event=entry.as_event())
|