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.session') factory = fti.factory new_object = createObject(factory) self.assertTrue(ISession.providedBy(new_object))
def test_adding_inside_forum(self): self.folder.invokeFactory('telesur.forums.session', 's1') s1 = self.folder['s1'] self.assertTrue(ISession.providedBy(s1))