Skip to content

Commit 96b8fb6

Browse files
committed
fix: don't duplicate user values in the user child tables
1 parent c473ebb commit 96b8fb6

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

meet/meet/doctype/sae_meeting/sae_meeting.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from meet.utils.user import (
1313
get_guest_session,
1414
get_user_info,
15+
unique_users,
1516
)
1617

1718

@@ -43,6 +44,12 @@ def before_insert(self):
4344
if not hasattr(self, "is_active"):
4445
self.is_active = 1
4546

47+
def validate(self):
48+
"""Ensure unique users in all child tables"""
49+
self.members = unique_users(self.members) if self.members else []
50+
self.waiting_room = unique_users(self.waiting_room) if self.waiting_room else []
51+
self.banned_users = unique_users(self.banned_users) if self.banned_users else []
52+
4653
def after_insert(self):
4754
self.join(frappe.session.user)
4855

meet/utils/user.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@
88
from frappe.core.doctype.user.user import User
99

1010

11+
def unique_users(user_list: list[dict]) -> list[str]:
12+
"""Return a list of unique user IDs, preserving order."""
13+
seen = set()
14+
unique_list = []
15+
for user in user_list:
16+
if user not in seen:
17+
seen.add(user)
18+
unique_list.append(user)
19+
return unique_list
20+
21+
1122
def assign_meet_role(user: User, method: str) -> None:
1223
"""Assign the "Meet User" role to a newly created User."""
1324
role_name = "Meet User"

0 commit comments

Comments
 (0)