summaryrefslogtreecommitdiff
path: root/tests/pkgs/legacysecurityapp/__init__.py
blob: 12fb6104ee3fd75c235f2131346a125f02024be9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from pyramid.response import Response
from pyramid.authentication import RemoteUserAuthenticationPolicy
from pyramid.security import Allowed, Denied


class AuthorizationPolicy:
    def permits(self, context, principals, permission):
        if 'bob' in principals and permission == 'foo':
            return Allowed('')
        else:
            return Denied('')

    def principals_allowed_by_permission(self, context, permission):
        raise NotImplementedError()  # pragma: no cover


def public(context, request):
    return Response('Hello')


def private(context, request):
    return Response('Secret')


def inaccessible(context, request):
    raise AssertionError()  # pragma: no cover


def includeme(config):
    config.set_authentication_policy(RemoteUserAuthenticationPolicy())
    config.set_authorization_policy(AuthorizationPolicy())
    config.add_route('public', '/public')
    config.add_view(public, route_name='public')
    config.add_route('private', '/private')
    config.add_view(private, route_name='private', permission='foo')
    config.add_route('inaccessible', '/inaccessible')
    config.add_view(inaccessible, route_name='inaccessible', permission='bar')