def user_match(self, userid, tomatch): domatch = False user = self.xod_config['users'].keeplist[userid] # does the user fullfil the destination criteria ? if 'desttype' in tomatch and 'destid' in tomatch: dest_type, dest_id = tomatch['desttype'], tomatch['destid'] if dest_type == 'user' and userid == str(dest_id): domatch = True elif dest_type == 'agent': domatch = user['agentid'] == int(dest_id) elif dest_type == 'queue' and dest_id: domatch = queue_dao.is_user_member_of_queue(userid, dest_id) elif dest_type == 'group' and dest_id: domatch = group_dao.is_user_member_of_group(userid, dest_id) else: # 'all' case domatch = True if domatch and 'profileids' in tomatch: if user['cti_profile_id'] not in tomatch['profileids']: domatch = False if domatch and 'contexts' in tomatch: domatch = False if user['context'] in tomatch['contexts']: domatch = True return domatch
def test_is_user_member_of_group_when_not_present(self): user_id = 1 group = self._insert_group('foobar', '1234', 'default') result = group_dao.is_user_member_of_group(user_id, group.id) self.assertFalse(result)
def test_is_user_member_of_group_when_present(self): user_id = 1 group = self._insert_group('foobar', '1234', 'default') self._insert_group_member(group.name, 'user', user_id) result = group_dao.is_user_member_of_group(user_id, group.id) self.assertTrue(result)