예제 #1
0
    def afterSetUp(self):
        super(JsonClientTestCase, self).afterSetUp()
        register_layer(IPMR2JsonClientTestLayer, 'pmr2.jsonclient.tests')
        request = TestRequest()

        # Ensure that the most basic scope managers are being used.
        cmf = factory(ConsumerManager)
        tmf = factory(TokenManager)
        smf = factory(MockScopeManager)

        zope.component.provideAdapter(cmf, (
            IAnnotatable,
            IPMR2JsonClientTestLayer,
        ), IConsumerManager)
        zope.component.provideAdapter(tmf, (
            IAnnotatable,
            IPMR2JsonClientTestLayer,
        ), ITokenManager)
        zope.component.provideAdapter(smf, (
            IAnnotatable,
            IPMR2JsonClientTestLayer,
        ), IScopeManager)

        # assuming none of these are overridden.
        self.consumer = Consumer('test.example.com', 'consumer-secret',
                                 u'PMR2 Test JSON Client', None)
        cm = zope.component.getMultiAdapter((self.portal, request),
                                            IConsumerManager)
        cm.add(self.consumer)

        token = Token('pmr2token', 'token-secret')
        token.access = True
        token.consumer_key = self.consumer.key
        token.user = default_user

        self.token = token
        tm = zope.component.getMultiAdapter((self.portal, request),
                                            ITokenManager)
        tm.add(self.token)

        # XXX especially this one.
        sm = zope.component.getMultiAdapter((self.portal, request),
                                            IScopeManager)
        sm.permitted = '^.*$'  # permit everything.

        b = Browser()
        portal_url = self.portal.absolute_url()
        b.open(portal_url + '/login')
        b.getControl(name='__ac_name').value = default_user
        b.getControl(name='__ac_password').value = default_password
        b.getControl(name='submit').click()
        self.user_browser = b
예제 #2
0
    def afterSetUp(self):
        super(JsonClientTestCase, self).afterSetUp()
        register_layer(IPMR2JsonClientTestLayer, "pmr2.jsonclient.tests")
        request = TestRequest()

        # Ensure that the most basic scope managers are being used.
        cmf = factory(ConsumerManager)
        tmf = factory(TokenManager)
        smf = factory(MockScopeManager)

        zope.component.provideAdapter(cmf, (IAnnotatable, IPMR2JsonClientTestLayer), IConsumerManager)
        zope.component.provideAdapter(tmf, (IAnnotatable, IPMR2JsonClientTestLayer), ITokenManager)
        zope.component.provideAdapter(smf, (IAnnotatable, IPMR2JsonClientTestLayer), IScopeManager)

        # assuming none of these are overridden.
        self.consumer = Consumer("test.example.com", "consumer-secret", u"PMR2 Test JSON Client", None)
        cm = zope.component.getMultiAdapter((self.portal, request), IConsumerManager)
        cm.add(self.consumer)

        token = Token("pmr2token", "token-secret")
        token.access = True
        token.consumer_key = self.consumer.key
        token.user = default_user

        self.token = token
        tm = zope.component.getMultiAdapter((self.portal, request), ITokenManager)
        tm.add(self.token)

        # XXX especially this one.
        sm = zope.component.getMultiAdapter((self.portal, request), IScopeManager)
        sm.permitted = "^.*$"  # permit everything.

        b = Browser()
        portal_url = self.portal.absolute_url()
        b.open(portal_url + "/login")
        b.getControl(name="__ac_name").value = default_user
        b.getControl(name="__ac_password").value = default_password
        b.getControl(name="submit").click()
        self.user_browser = b
예제 #3
0
파일: consumer.py 프로젝트: PMR2/pmr2.oauth
    def getValidated(self, consumer_key, default=None):
        # Provision for further checks by alternative implementations.
        return self.get(consumer_key, default)

    def getAllKeys(self):
        return self._consumers.keys()

    def makeDummy(self):
        return Consumer(str(self.DUMMY_KEY), str(self.DUMMY_SECRET))

    def remove(self, consumer):
        if IConsumer.providedBy(consumer):
            consumer = consumer.key
        self._consumers.pop(consumer)

ConsumerManagerFactory = factory(ConsumerManager)


class Consumer(Persistent):
    """\
    Basic persistent consumer class.
    """

    zope.interface.implements(IConsumer)

    key = fieldproperty.FieldProperty(IConsumer['key'])
    secret = fieldproperty.FieldProperty(IConsumer['secret'])
    title = fieldproperty.FieldProperty(IConsumer['title'])
    domain = fieldproperty.FieldProperty(IConsumer['domain'])

    def __init__(self, key, secret, title=None, domain=None):
예제 #4
0
파일: token.py 프로젝트: PMR2/pmr2.oauth
        self._del_user_map(token)
        return token

    def requestTokenVerify(self, consumer_key, token, verifier):
        """\
        Verify that the request results in a valid token by checking for
        validity of the consumer_key and verifier.
        """

        token = self.getRequestToken(token)
        return (token.consumer_key == consumer_key and 
                token.verifier == verifier and
                token.user is not None
                )

TokenManagerFactory = factory(TokenManager)


class Token(Persistent):

    zope.interface.implements(IToken)

    key = fieldproperty.FieldProperty(IToken['key'])
    secret = fieldproperty.FieldProperty(IToken['secret'])
    callback = fieldproperty.FieldProperty(IToken['callback'])
    verifier = fieldproperty.FieldProperty(IToken['verifier'])
    access = fieldproperty.FieldProperty(IToken['access'])

    user = fieldproperty.FieldProperty(IToken['user'])
    consumer_key = fieldproperty.FieldProperty(IToken['consumer_key'])
    timestamp = fieldproperty.FieldProperty(IToken['timestamp'])
예제 #5
0
파일: scope.py 프로젝트: PMR2/pmr2.oauth
        for vs in valid_scopes:
            # XXX ignores second last asterisk, preventing validation
            # against items that have an asterisk in its name for 
            # whatever reason...
            if vs.endswith('*') and '/' in vs:
                match = subpath.startswith(vs[:vs.rindex('*')])
            else:
                match = subpath == vs
            if match:
                logger.debug('subpath:%s within scope', subpath)
                return True
        logger.debug('out of scope: %s not a subpath in mapping for %s',
            subpath, accessed_type)
        return False

ContentTypeScopeManagerFactory = factory(ContentTypeScopeManager)


class ContentTypeScopeProfile(Persistent):
    """
    The one for editing purpose.  Allows definition of names and fields
    related to the user side creation and usage of mappings.
    """

    zope.interface.implements(IContentTypeScopeProfile)

    title = fieldproperty.FieldProperty(
        IContentTypeScopeProfile['title'])
    description = fieldproperty.FieldProperty(
        IContentTypeScopeProfile['description'])
    methods = fieldproperty.FieldProperty(IContentTypeScopeProfile['methods'])