fix: surface real errors when adding user to Mattermost team
_ensure_team_member silently swallowed every exception from add_user_to_team, assuming failure meant the user was already a member. Real failures (bad permissions, domain restrictions, wrong team ID) were masked and only surfaced later as a confusing "No team member found" error when adding the user to a channel. Now checks actual membership via get_team_member and raises a clear MattermostError on genuine add failures.
This commit is contained in:
parent
c6e26bcbaa
commit
e127fd39bc
1 changed files with 12 additions and 2 deletions
|
|
@ -72,12 +72,22 @@ class MattermostClient:
|
|||
def _ensure_team_member(self, mm_user_id: str) -> None:
|
||||
if not self._team_id:
|
||||
return
|
||||
try:
|
||||
self._driver.teams.get_team_member(self._team_id, mm_user_id)
|
||||
return # already a member
|
||||
except ResourceNotFound:
|
||||
pass
|
||||
except Exception as exc:
|
||||
raise MattermostError(f"Team membership lookup failed: {exc}") from exc
|
||||
|
||||
try:
|
||||
self._driver.teams.add_user_to_team(
|
||||
self._team_id, options={"team_id": self._team_id, "user_id": mm_user_id}
|
||||
)
|
||||
except Exception:
|
||||
pass # already a member or team not configured — not fatal
|
||||
except Exception as exc:
|
||||
raise MattermostError(
|
||||
f"Adding user {mm_user_id} to team failed: {exc}"
|
||||
) from exc
|
||||
|
||||
def get_or_create_user(self, user_id: UUID) -> str:
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue