Example #1
0
    def getForumRolesOnContext(self, context, principal_id):
        """
        Calculate Forum Moderator roles based on the user object.

        Note: This function is *heavy* since it wakes lots of objects along the acquisition chain.
        """

        session = None
        roles = []

        if ISession.providedBy(context):
            session = context.aq_inner
        else:
            if IQuestion.providedBy(context):
                session = context.aq_inner.aq_parent

        if session:
            pm = getToolByName(self.context, 'portal_membership')
            user = pm.getMemberById(principal_id)

            if user:
                username = user.getUser().getUserName()
                if session.moderator and (username in session.moderator):
                    roles += ["Forum Moderator"]

                if session.guest and (username in session.guest):
                    roles += ["Forum Guest"]
        # No match
        return roles
Example #2
0
 def test_factory(self):
     fti = queryUtility(IDexterityFTI, name='telesur.forums.session')
     factory = fti.factory
     new_object = createObject(factory)
     self.assertTrue(ISession.providedBy(new_object))
Example #3
0
 def test_adding_inside_forum(self):
     self.folder.invokeFactory('telesur.forums.session', 's1')
     s1 = self.folder['s1']
     self.assertTrue(ISession.providedBy(s1))