def test_disablePowerTokens(self):
     token1 = self.utility.enablePowerToken(self.doc, 'foo')
     token2 = self.utility.enablePowerToken(self.doc, 'foo')
     self.assertTrue(IPowerTokenizedContent.providedBy(self.doc))
     self.utility.disablePowerTokens(self.doc)
     self.assertFalse(IPowerTokenizedContent.providedBy(self.doc))
     self.assertRaises(PowerTokenConfigurationError, self.utility.verifyToken, self.doc, token1, False)
     self.assertRaises(PowerTokenConfigurationError, self.utility.verifyToken, self.doc, token2, False)
     self.assertEqual(IAnnotations(self.doc).get(config.MAIN_TOKEN_NAME), None)
    def verifyToken(self, content, token, raiseOnError=True):
        if not IPowerTokenizedContent.providedBy(content):
            raise PowerTokenConfigurationError("Content %s isn't an IPowerTokenizedContent" % '/'.join(content.getPhysicalPath()))
        annotations = IAnnotations(content)
        try:
            powertokens = annotations[config.MAIN_TOKEN_NAME]
        except KeyError:
            raise KeyError("Content %s doesn't provide tokens" % '/'.join(content.getPhysicalPath()))

        if not token or powertokens.get(token) is None:
            if raiseOnError:
                raise PowerTokenSecurityError('Token verification failed')
            return False
        return True
    def verifyToken(self, content, token, raiseOnError=True):
        if not IPowerTokenizedContent.providedBy(content):
            raise PowerTokenConfigurationError(
                "Content %s isn't an IPowerTokenizedContent" %
                '/'.join(content.getPhysicalPath()))
        annotations = IAnnotations(content)
        try:
            powertokens = annotations[config.MAIN_TOKEN_NAME]
        except KeyError:
            raise KeyError("Content %s doesn't provide tokens" %
                           '/'.join(content.getPhysicalPath()))

        if not token or powertokens.get(token) is None:
            if raiseOnError:
                raise PowerTokenSecurityError('Token verification failed')
            return False
        return True
 def test_enablePowerToken(self):
     token = self.utility.enablePowerToken(self.doc, 'foo')
     configuration = IAnnotations(self.doc)[config.MAIN_TOKEN_NAME]
     self.assertTrue(IPowerTokenizedContent.providedBy(self.doc))
     self.assertEquals(configuration.keys()[0], token)