ldap: Implement external auth id auth+sync.

Fixes #24104.
This commit is contained in:
Mateusz Mandera
2025-06-10 01:47:28 +08:00
committed by Tim Abbott
parent d273059475
commit a61d849e37
11 changed files with 475 additions and 36 deletions

View File

@@ -91,7 +91,7 @@ from zerver.models.presence import PresenceSequence
from zerver.models.realm_audit_logs import AuditLogEventType
from zerver.models.realms import get_fake_email_domain, get_realm
from zerver.models.saved_snippets import SavedSnippet
from zerver.models.users import get_system_bot, get_user_profile_by_id
from zerver.models.users import ExternalAuthID, get_system_bot, get_user_profile_by_id
if TYPE_CHECKING:
from mypy_boto3_s3.service_resource import Object
@@ -158,6 +158,7 @@ ALL_ZULIP_TABLES = {
"zerver_defaultstreamgroup_streams",
"zerver_draft",
"zerver_emailchangestatus",
"zerver_externalauthid",
"zerver_groupgroupmembership",
"zerver_huddle",
"zerver_imageattachment",
@@ -332,6 +333,7 @@ DATE_FIELDS: dict[TableName, list[Field]] = {
"analytics_usercount": ["end_time"],
"zerver_attachment": ["create_time"],
"zerver_channelfolder": ["date_created"],
"zerver_externalauthid": ["date_created"],
"zerver_message": ["last_edit_time", "date_sent"],
"zerver_muteduser": ["date_muted"],
"zerver_realmauditlog": ["event_time"],
@@ -1249,6 +1251,14 @@ def add_user_profile_child_configs(user_profile_config: Config) -> None:
limit_to_consenting_users=True,
)
Config(
table="zerver_externalauthid",
model=ExternalAuthID,
normal_parent=user_profile_config,
include_rows="user_id__in",
limit_to_consenting_users=True,
)
# We exclude these fields for the following reasons:
# * api_key is a secret.