Beispiel #1
0
    def _test_online_users(self, username1, username2):
        """ Tests the confirm_as_online, get_online_usernames and 
            get_online_members methods
        """
        portal = self.portal

        # First clear the UAD
        server = utils.getConnection(self.portal)
        server._v_user_access_dict = {}
    
        online_users = utils.get_online_usernames(portal)
        self.assertEquals(online_users, [])

        online_members = utils.get_online_members(portal)
        self.assertEquals(online_members, [])

        self.logout()
        resp = json.loads(server.confirmAsOnline(None))
        self.assertEquals(resp['status'], config.ERROR)

        self.login(name=username1)

        server = utils.getConnection(self.portal)
        resp = json.loads(server.confirmAsOnline(username1))
        self.assertEquals(resp['status'], config.SUCCESS)

        online_users = utils.get_online_usernames(portal)
        self.assertEquals(online_users, [username1])

        # get_online_members ignores the currently logged in user.
        # So, if username1 is currently logged in and also online (according to
        # get_online_users), get_online_members will still return an empty
        # list.
        online_members = utils.get_online_members(portal)
        self.assertEquals(online_members, [])

        self.logout()

        self.login(name=username2)

        server = utils.getConnection(self.portal)
        resp = json.loads(server.confirmAsOnline(username2))
        self.assertEquals(resp['status'], config.SUCCESS)

        online_users = utils.get_online_usernames(portal)
        online_users.sort()
        self.assertEquals(online_users, [username1, username2])

        # Again, the logged in username2 is ignored
        member1 = self.mtool.getMemberById(username1)
        online_members = utils.get_online_members(portal)
        self.assertEquals(online_members, [member1])
        self.logout()

        # Now the logged in username1 is ignored
        self.login(name=username1)
        member2 = self.mtool.getMemberById(username2)
        online_members = utils.get_online_members(portal)
        self.assertEquals(online_members, [member2])
Beispiel #2
0
    # Register the user for the chatservice
    view = getMultiAdapter((site, site.REQUEST), name='babblechat')
    view.initialize()
    
    mtool = getToolByName(site, 'portal_membership')
    member = mtool.getMemberById(username)
    try:
        password = getattr(member, 'chatpass')
    except AttributeError, e:
        log.error(e)
        log.error("%s does not have property 'chatpass'.\n"
                  "This usually happens when you have deleted and recreated a "
                  "user in Plone, while the Babble ChatService user remains. "
                  "Delete the ChatService user as well and retry." % username)
        return

    catalog = getToolByName(site, 'portal_catalog')
    chatrooms = catalog(portal_type='babble.client.chatroom',
                        participants=username ) 

    s = getConnection(site)
    for c in chatrooms:
        chatroom = c.getObject()
        path = '/'.join(chatroom.getPhysicalPath())
        response = json.loads(s.addChatRoomParticipant(
                                    username,
                                    password,
                                    path,
                                    username ))