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
def test_factory(self): fti = queryUtility(IDexterityFTI, name='telesur.forums.question') factory = fti.factory new_object = createObject(factory) self.assertTrue(IQuestion.providedBy(new_object))
def test_addable_inside_session(self): self.session.invokeFactory('telesur.forums.question', 'q1') q1 = self.session['q1'] self.failUnless(IQuestion.providedBy(q1))