def test_identity(self): from pyramid.security import LegacySecurityPolicy request = _makeRequest() policy = LegacySecurityPolicy() _registerAuthenticationPolicy(request.registry, 'userid') self.assertEqual(policy.identify(request), 'userid')
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'))
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')])
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')])
def _registerLegacySecurityPolicy(reg): from pyramid.interfaces import ISecurityPolicy from pyramid.security import LegacySecurityPolicy policy = LegacySecurityPolicy() reg.registerUtility(policy, ISecurityPolicy) return policy
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)
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
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)
def test_forget_with_kwargs(self): from pyramid.security import LegacySecurityPolicy policy = LegacySecurityPolicy() self.assertRaises(ValueError, lambda: policy.forget(None, foo='bar'))