diff --git a/ravem/indico_ravem/controllers.py b/ravem/indico_ravem/controllers.py index 71b2347c..b67f564d 100644 --- a/ravem/indico_ravem/controllers.py +++ b/ravem/indico_ravem/controllers.py @@ -56,13 +56,6 @@ def _process_args(self): class RHRavemRoomStatus(RHRavemBase): def _process(self): - if self.event_vc_room.vc_room.type == 'vidyo': - return { - 'success': False, - 'reason': 'unsupported', - 'message': '' - 'Vidyo is no longer supported' - } try: response = get_room_status(self.room.name, self.room.verbose_name) response['success'] = True diff --git a/ravem/indico_ravem/plugin.py b/ravem/indico_ravem/plugin.py index f3309f61..f8ba3a76 100644 --- a/ravem/indico_ravem/plugin.py +++ b/ravem/indico_ravem/plugin.py @@ -99,7 +99,7 @@ def get_vars_js(self): # pragma: no cover def inject_connect_button(self, template, event_vc_room, **kwargs): # pragma: no cover from indico_ravem.util import has_access - if event_vc_room.vc_room.type not in ('vidyo', 'zoom') or not has_access(event_vc_room): + if event_vc_room.vc_room.type != 'zoom' or not has_access(event_vc_room): return return render_plugin_template(template, room_name=event_vc_room.link_object.room.name, diff --git a/ravem/indico_ravem/util.py b/ravem/indico_ravem/util.py index 7c7da15e..8f451e42 100644 --- a/ravem/indico_ravem/util.py +++ b/ravem/indico_ravem/util.py @@ -94,6 +94,8 @@ def has_access(event_vc_room, _split_re=re.compile(r'[\s,;]+')): feature = RavemPlugin.settings.get('room_feature') if not room or (feature and not (set(feature.equipment_types) & set(room.available_equipment))): return False + elif room.get_attribute_value('zoom-rooms-calendar-id'): + return False ips = {_f for _f in (x.strip() for x in _split_re.split(room.get_attribute_value('ip', ''))) if _f} host = vc_room.data.get('host') or vc_room.data.get('owner') diff --git a/ravem/tests/util_test.py b/ravem/tests/util_test.py index 53de63cb..b7dd398b 100644 --- a/ravem/tests/util_test.py +++ b/ravem/tests/util_test.py @@ -197,6 +197,12 @@ def test_unlinked_room_has_no_access(mocker): assert not has_access(event_vc_room) +def _mock_get_attribute_value(name, default=None): + if name == 'ip': + return '111.222.123.123' + return default + + @pytest.mark.usefixtures('db', 'request_context') def test_check_if_current_user_is_room_owner(mocker): session = mocker.patch('indico_ravem.util.session') @@ -208,7 +214,7 @@ def test_check_if_current_user_is_room_owner(mocker): event_vc_room = MagicMock() event_vc_room.link_object.room.has_equipment = MagicMock(return_value=True) - event_vc_room.link_object.room.get_attribute_value.return_value = request.remote_addr + event_vc_room.link_object.room.get_attribute_value = _mock_get_attribute_value event_vc_room.vc_room.data.get.return_value = 'User:123' event_vc_room.event.can_manage.return_value = False @@ -225,7 +231,7 @@ def test_check_if_current_user_can_modify(mocker): event_vc_room = MagicMock() event_vc_room.link_object.room.has_equipment = MagicMock(return_value=True) - event_vc_room.link_object.room.get_attribute_value.return_value = request.remote_addr + event_vc_room.link_object.room.get_attribute_value = _mock_get_attribute_value event_vc_room.event.can_manage.return_value = True assert has_access(event_vc_room)