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 != 'vidyo' or not has_access(event_vc_room): return return render_plugin_template(template, room_name=event_vc_room.link_object.room.name, event_vc_room=event_vc_room, **kwargs)
def test_unlinked_room_has_no_access(mocker): session = mocker.patch('indico_ravem.util.session') session.user = '******' event_vc_room = MagicMock() event_vc_room.link_object.room = None assert not has_access(event_vc_room)
def test_room_not_vidyo_capable_has_no_access(mocker): session = mocker.patch('indico_ravem.util.session') session.user = '******' event_vc_room = MagicMock() event_vc_room.link_object.room.has_equipment = MagicMock(return_value=False) assert not has_access(event_vc_room) event_vc_room.link_object.room.has_equipment.assert_called_once_with('Vidyo')
def test_check_basic_user_outside_room(mocker): mocker.patch('indico_ravem.util.session') mocker.patch('indico_ravem.util.retrieve_principal') request = mocker.patch('indico_ravem.util.request') request.remote_addr = '111.222.123.123' 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.event.can_manage.return_value = True assert has_access(event_vc_room)
def test_check_if_current_user_can_modify(mocker): request = mocker.patch('indico_ravem.util.request') request.remote_addr = '111.222.123.123' session = mocker.patch('indico_ravem.util.session') session.user = '******' mocker.patch('indico_ravem.util._retrieve_principal') 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.event.can_manage.return_value = True assert has_access(event_vc_room) event_vc_room.event.can_manage.assert_called_once_with(session.user)
def test_check_if_current_user_is_room_owner(mocker): session = mocker.patch('indico_ravem.util.session') session.user = '******' request = mocker.patch('indico_ravem.util.request') request.remote_addr = '111.222.123.123' retrieve_principal = mocker.patch('indico_ravem.util._retrieve_principal') retrieve_principal.side_effect = lambda x: session.user 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.vc_room.data.get.return_value = 'User:123' event_vc_room.event.can_manage.return_value = False assert has_access(event_vc_room)
def test_unlinked_event_vc_room_has_no_access(): event_vc_room = MagicMock() event_vc_room.link_object = None assert not has_access(event_vc_room)
def _check_access(self): if not has_access(self.event_vc_room): raise RavemException(_("Not authorized to access the room with RAVEM"))