def callfilter(agi, cursor, args): callfiltermember_id = args[0] if not callfiltermember_id.isdigit(): agi.dp_break('This id "%s" is not a valid callfiltermember_id id.' % callfiltermember_id) caller_user_id = agi.get_variable(dialplan_variables.USERID) callfiltermember = callfilter_dao.get_by_callfiltermember_id(callfiltermember_id) if not callfiltermember: agi.dp_break('This callfilter does not exist.') bslist = callfilter_dao.get(callfiltermember.callfilterid) if not bslist: agi.dp_break('This callfilter has no member.') allow_ids = [] for bs in bslist: callfilter, callfiltermembers = bs allow_ids.append(callfiltermembers.typeval) if not caller_user_id or caller_user_id not in allow_ids: agi.dp_break('This user is not allowed to use this callfilter.') new_state = 0 if callfiltermember.active == 1 else 1 callfilter_dao.update_callfiltermember_state(callfiltermember_id, new_state) agi.set_variable('XIVO_BSFILTERENABLED', new_state)
def test_get_with_filter_having_members(self): boss_id = 1 filter_id = self._insert_call_filter('testfilter') callfilter_dao.add_user_to_filter(boss_id, filter_id, 'boss') result = callfilter_dao.get(filter_id) self.assertEquals(1, len(result)) callfilter = result[0][0] member = result[0][1] self.assertEquals(callfilter.id, filter_id) self.assertEquals(member.typeval, str(boss_id))
def test_get_with_filter_having_members(self): boss_id = 1 call_filter = self.add_call_filter() self._add_user_to_filter(boss_id, call_filter.id, 'boss') result = callfilter_dao.get(call_filter.id) self.assertEqual(1, len(result)) callfilter = result[0][0] member = result[0][1] self.assertEqual(callfilter.id, call_filter.id) self.assertEqual(member.typeval, str(boss_id))
def test_get_with_filter_having_2_members(self): boss_id = 1 secretary_id = 2 filter_id = self._insert_call_filter('testfilter') callfilter_dao.add_user_to_filter(boss_id, filter_id, 'boss') callfilter_dao.add_user_to_filter(secretary_id, filter_id, 'secretary') result = callfilter_dao.get(filter_id) self.assertEquals(2, len(result)) member_ids = [int(c[1].typeval) for c in result] self.assertIn(boss_id, member_ids) self.assertIn(secretary_id, member_ids)
def test_get_with_filter_but_no_members(self): filter_id = self._insert_call_filter('testfilter') result = callfilter_dao.get(filter_id) self.assertEquals(result, [])
def test_get_with_no_filter(self): filter_id = 1 result = callfilter_dao.get(filter_id) self.assertEquals(result, [])
def test_get_with_filter_but_no_members(self): call_filter = self.add_call_filter() result = callfilter_dao.get(call_filter.id) self.assertEqual(result, [])