mirror of
https://github.com/zulip/zulip.git
synced 2025-11-09 16:37:23 +00:00
compose: Rewrite Zoom video call integration to use OAuth.
This reimplements our Zoom video call integration to use an OAuth application. In addition to providing a cleaner setup experience, especially on zulipchat.com where the server administrators can have done the app registration already, it also fixes the limitation of the previous integration that it could only have one call active at a time when set up with typical Zoom API keys. Fixes #11672. Co-authored-by: Marco Burstein <marco@marco.how> Co-authored-by: Tim Abbott <tabbott@zulipchat.com> Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
committed by
Tim Abbott
parent
7a53da7526
commit
4d04fa3118
@@ -153,7 +153,6 @@ from zerver.lib.sessions import delete_user_sessions
|
||||
from zerver.lib.upload import claim_attachment, delete_message_image, \
|
||||
upload_emoji_image, delete_avatar_image, \
|
||||
delete_export_tarball
|
||||
from zerver.lib.video_calls import request_zoom_video_call_url
|
||||
from zerver.tornado.event_queue import send_event
|
||||
from zerver.lib.types import ProfileFieldData
|
||||
from zerver.lib.streams import access_stream_for_send_message, subscribed_to_stream, check_stream_name, \
|
||||
@@ -604,9 +603,6 @@ def do_set_realm_property(realm: Realm, name: str, value: Any) -> None:
|
||||
setattr(realm, name, value)
|
||||
realm.save(update_fields=[name])
|
||||
|
||||
if name == 'zoom_api_secret':
|
||||
# Send '' as the value through the API for the API secret
|
||||
value = ''
|
||||
event = dict(
|
||||
type='realm',
|
||||
op='update',
|
||||
@@ -5747,18 +5743,13 @@ def do_send_realm_reactivation_email(realm: Realm) -> None:
|
||||
from_name=FromAddress.security_email_from_name(language=language),
|
||||
language=language, context=context)
|
||||
|
||||
def get_zoom_video_call_url(realm: Realm) -> str:
|
||||
response = request_zoom_video_call_url(
|
||||
realm.zoom_user_id,
|
||||
realm.zoom_api_key,
|
||||
realm.zoom_api_secret
|
||||
def do_set_zoom_token(user: UserProfile, token: Optional[Dict[str, object]]) -> None:
|
||||
user.zoom_token = token
|
||||
user.save(update_fields=["zoom_token"])
|
||||
send_event(
|
||||
user.realm, dict(type="has_zoom_token", value=token is not None), [user.id]
|
||||
)
|
||||
|
||||
if response is None:
|
||||
return ''
|
||||
|
||||
return response['join_url']
|
||||
|
||||
def notify_realm_export(user_profile: UserProfile) -> None:
|
||||
# In the future, we may want to send this event to all realm admins.
|
||||
event = dict(type='realm_export',
|
||||
|
||||
Reference in New Issue
Block a user