@@ -31,6 +31,10 @@ def _get_codec_strategy() -> str:
3131@rate_limit (limit = 10 , seconds = 60 * 60 )
3232def create (meeting_type : str = "open" , allow_guest : bool = True ) -> str :
3333 """Create a new meeting with specified type"""
34+ global_settings = frappe .get_cached_doc ("Sae Settings" )
35+ if not global_settings .allow_guest :
36+ allow_guest = False
37+
3438 meeting : SaeMeeting = frappe .get_doc (
3539 {
3640 "doctype" : "Sae Meeting" ,
@@ -427,7 +431,8 @@ def join_meeting_as_guest(meeting_id: str, guest_name: str, guest_id: str | None
427431
428432 meeting = frappe .get_doc ("Sae Meeting" , meeting_id )
429433
430- if not meeting .allow_guest :
434+ global_settings = frappe .get_cached_doc ("Sae Settings" )
435+ if not global_settings .allow_guest or not meeting .allow_guest :
431436 return {"success" : False , "error" : "Guests are not allowed in this meeting" }
432437
433438 # Check if reusing existing guest_id
@@ -651,6 +656,9 @@ def update_meeting_settings(meeting_id: str, allow_guest: int, meeting_type: str
651656
652657 updated_fields = {}
653658 if allow_guest is not None :
659+ global_settings = frappe .get_cached_doc ("Sae Settings" )
660+ if not global_settings .allow_guest and allow_guest :
661+ return {"success" : False , "error" : "Guest access is disabled globally" }
654662 meeting .allow_guest = bool (allow_guest )
655663 updated_fields ["allow_guest" ] = meeting .allow_guest
656664
@@ -694,10 +702,12 @@ def check_meeting_access(meeting_id: str) -> dict:
694702 """
695703 try :
696704 meeting : SaeMeeting = frappe .get_doc ("Sae Meeting" , meeting_id )
705+ settings = frappe .get_cached_doc ("Sae Settings" )
706+ allow_guest = settings .allow_guest and meeting .allow_guest
697707
698708 return {
699709 "success" : True ,
700- "allow_guest" : meeting . allow_guest ,
710+ "allow_guest" : allow_guest ,
701711 }
702712 except frappe .DoesNotExistError :
703713 return {
0 commit comments