示例#1
0
    def test_identity(self):
        from pyramid.security import LegacySecurityPolicy

        request = _makeRequest()
        policy = LegacySecurityPolicy()
        _registerAuthenticationPolicy(request.registry, 'userid')

        self.assertEqual(policy.identify(request), 'userid')
示例#2
0
    def test_permits(self):
        from pyramid.security import LegacySecurityPolicy

        request = _makeRequest()
        policy = LegacySecurityPolicy()
        _registerAuthenticationPolicy(request.registry, ['p1', 'p2'])
        _registerAuthorizationPolicy(request.registry, True)

        self.assertTrue(policy.permits(request, request.context, 'permission'))
示例#3
0
    def test_forget(self):
        from pyramid.security import LegacySecurityPolicy

        request = _makeRequest()
        policy = LegacySecurityPolicy()
        _registerAuthenticationPolicy(request.registry, None)

        self.assertEqual(policy.forget(request),
                         [('X-Pyramid-Test', 'logout')])
示例#4
0
    def test_remember(self):
        from pyramid.security import LegacySecurityPolicy

        request = _makeRequest()
        policy = LegacySecurityPolicy()
        _registerAuthenticationPolicy(request.registry, None)

        self.assertEqual(policy.remember(request, 'userid'),
                         [('X-Pyramid-Test', 'userid')])
示例#5
0
def _registerLegacySecurityPolicy(reg):
    from pyramid.interfaces import ISecurityPolicy
    from pyramid.security import LegacySecurityPolicy

    policy = LegacySecurityPolicy()
    reg.registerUtility(policy, ISecurityPolicy)
    return policy
示例#6
0
 def register():
     self.registry.registerUtility(policy, IAuthenticationPolicy)
     if self.registry.queryUtility(IAuthorizationPolicy) is None:
         raise ConfigurationError(
             'Cannot configure an authentication policy without '
             'also configuring an authorization policy '
             '(use the set_authorization_policy method)')
     if self.registry.queryUtility(ISecurityPolicy) is not None:
         raise ConfigurationError(
             'Cannot configure an authentication and authorization'
             'policy with a configured security policy.')
     security_policy = LegacySecurityPolicy()
     self.registry.registerUtility(security_policy, ISecurityPolicy)
示例#7
0
def testing_legacySecurityPolicy(
    config, userid=None, groupids=(), permissive=True, remember_result=None, forget_result=None
):
    """Compatibility mode for deprecated AuthorizationPolicy and AuthenticationPolicy in our tests"""
    from pyramid.interfaces import IAuthenticationPolicy, IAuthorizationPolicy, ISecurityPolicy
    from pyramid.security import LegacySecurityPolicy
    from pyramid.testing import DummySecurityPolicy

    policy = DummySecurityPolicy(userid, groupids, permissive, remember_result, forget_result)
    config.registry.registerUtility(policy, IAuthorizationPolicy)
    config.registry.registerUtility(policy, IAuthenticationPolicy)

    security_policy = LegacySecurityPolicy()
    config.registry.registerUtility(security_policy, ISecurityPolicy)
    return policy
示例#8
0
    def _testing_authn_policy(self, userid, groupids=tuple()):
        from pyramid.interfaces import IAuthenticationPolicy, ISecurityPolicy
        from pyramid.authorization import Everyone, Authenticated
        from pyramid.security import LegacySecurityPolicy

        class DummyPolicy:
            def effective_principals(self, request):
                p = [Everyone]
                if userid:
                    p.append(Authenticated)
                    p.append(userid)
                    p.extend(groupids)
                return p

        registry = self.config.registry
        registry.registerUtility(DummyPolicy(), IAuthenticationPolicy)
        registry.registerUtility(LegacySecurityPolicy(), ISecurityPolicy)
示例#9
0
    def test_forget_with_kwargs(self):
        from pyramid.security import LegacySecurityPolicy

        policy = LegacySecurityPolicy()
        self.assertRaises(ValueError, lambda: policy.forget(None, foo='bar'))