mirror of
https://github.com/lucaspalomodevelop/indico-plugins.git
synced 2026-03-13 07:29:39 +00:00
VC/Zoom: Add option to require registered participants
This commit is contained in:
parent
65c9f54aca
commit
7bf2dfac8e
@ -18,6 +18,8 @@
|
||||
- Allow using the same name for multiple Zoom rooms
|
||||
- Update the join url when changing the passcode
|
||||
- Provide an alternative method of looking up the Zoom user corresponding to an Indico user
|
||||
- Always show the full join link and passcode to event managers
|
||||
- The meeting passcode can be restricted to registered participants
|
||||
|
||||
**Breaking change:** The email domains are now stored as a list of strings instead of a comma-separated list. You need to update them in the plugin settings.
|
||||
|
||||
|
||||
@ -22,7 +22,6 @@ from indico.web.forms.validators import HiddenUnless, IndicoRegexp
|
||||
from indico.web.forms.widgets import SwitchWidget
|
||||
|
||||
from indico_vc_zoom import _
|
||||
from indico_vc_zoom.api.client import ZoomIndicoClient
|
||||
from indico_vc_zoom.util import find_enterprise_email
|
||||
|
||||
|
||||
@ -33,6 +32,7 @@ class VCRoomAttachForm(VCRoomAttachFormBase):
|
||||
choices=[
|
||||
('everyone', _('Everyone')),
|
||||
('logged_in', _('Logged-in users')),
|
||||
('registered', _('Registered participants')),
|
||||
('no_one', _('No one'))])
|
||||
|
||||
|
||||
@ -66,6 +66,7 @@ class VCRoomForm(VCRoomFormBase):
|
||||
choices=[
|
||||
('everyone', _('Everyone')),
|
||||
('logged_in', _('Logged-in users')),
|
||||
('registered', _('Registered participants')),
|
||||
('no_one', _('No one'))])
|
||||
|
||||
mute_audio = BooleanField(_('Mute audio'),
|
||||
|
||||
@ -14,9 +14,11 @@
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro render_join_button(vc_room, event_vc_room, extra_classes="", is_manager=false) %}
|
||||
{% if event_vc_room.data.password_visibility == 'everyone' or is_manager or
|
||||
(session.user and event_vc_room.data.password_visibility == 'logged_in') %}
|
||||
{% macro render_join_button(vc_room, event_vc_room, extra_classes='') %}
|
||||
{% if event_vc_room.data.password_visibility == 'everyone' or
|
||||
event_vc_room.event.can_manage(session.user) or
|
||||
(session.user and event_vc_room.data.password_visibility == 'logged_in') or
|
||||
(session.user and event_vc_room.data.password_visibility == 'registered' and event_vc_room.event.is_user_registered(session.user)) %}
|
||||
<a class="i-button icon-play highlight {{ extra_classes }}"
|
||||
href="{{ vc_room.data.url }}" target="_blank">
|
||||
{% trans %}Join{% endtrans %}
|
||||
@ -27,6 +29,27 @@
|
||||
href="{{ vc_room.data.public_url }}">
|
||||
{% trans %}Join{% endtrans %}
|
||||
</a>
|
||||
{% elif event_vc_room.data.password_visibility == 'registered' %}
|
||||
{% if session.user %}
|
||||
{% if event_vc_room.event.type == 'conference' %}
|
||||
<a class="i-button icon-ticket {{ extra_classes }}"
|
||||
title="{% trans %}This Zoom Meeting can only be seen by registered participants{% endtrans %}"
|
||||
href="{{ url_for('event_registration.display_regform_list', event) }}">
|
||||
{% trans %}Please register{% endtrans %}
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="i-button icon-ticket disabled {{ extra_classes }}"
|
||||
title="{% trans %}This Zoom Meeting can only be seen by registered participants{% endtrans %}">
|
||||
{% trans %}Registration required{% endtrans %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a class="i-button icon-ticket {{ extra_classes }}"
|
||||
title="{% trans %}This Zoom Meeting can only be seen by registered participants{% endtrans %}"
|
||||
href="{{ url_for_login(request.relative_url) }}">
|
||||
{% trans %}Please log in and register{% endtrans %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a class="i-button icon-lock-center {{ extra_classes }}"
|
||||
title="{% trans %}This Zoom Meeting can only be seen by logged in users{% endtrans %}"
|
||||
|
||||
@ -11,8 +11,10 @@
|
||||
<dt>{% trans %}Host{% endtrans %}</dt>
|
||||
<dd>{{ (host|decodeprincipal).full_name }}</dd>
|
||||
{% endif %}
|
||||
{% if event_vc_room.data.password_visibility == 'everyone' or is_manager or
|
||||
(session.user and event_vc_room.data.password_visibility == 'logged_in') %}
|
||||
{% if event_vc_room.data.password_visibility == 'everyone' or
|
||||
event_vc_room.event.can_manage(session.user) or
|
||||
(session.user and event_vc_room.data.password_visibility == 'logged_in') or
|
||||
(session.user and event_vc_room.data.password_visibility == 'registered' and event_vc_room.event.is_user_registered(session.user)) %}
|
||||
<dt>{% trans %}Passcode{% endtrans %}</dt>
|
||||
<dd>{{ vc_room.data.password }}</dd>
|
||||
{% endif %}
|
||||
|
||||
@ -2,5 +2,5 @@
|
||||
{% from 'vc_zoom:buttons.html' import render_join_button %}
|
||||
|
||||
{% block buttons %}
|
||||
{{ render_join_button(vc_room, event_vc_room, extra_classes="icon-play", is_manager=true) }}
|
||||
{{ render_join_button(vc_room, event_vc_room, extra_classes='icon-play') }}
|
||||
{% endblock %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user