Beispiel #1
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    if 'DATABASE_URL' in os.environ:
        settings['sqlalchemy.url'] = os.environ['DATABASE_URL']
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    config = Configurator(
        settings=settings,
        authentication_policy=AuthTktAuthenticationPolicy('somesecret'),
        authorization_policy=ACLAuthorizationPolicy(),
        default_permission='view')
    config.include('pyramid_jinja2')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/', factory=EntryFactory)
    config.add_route('detail', '/journal/{id:\d+}', factory=EntryFactory)
    config.add_route('action', '/journal/{action}', factory=EntryFactory)
    config.add_route('auth', '/sign/{action}', factory=EntryFactory)
    config.scan()
    return config.make_wsgi_app()
Beispiel #2
0
    def setUp(self):
        self.config = testing.setUp(
            settings={'pyramid.debug_authorization': True})

        # Set up debug_authorization logging to console
        logging.basicConfig(level=logging.DEBUG)
        debug_logger = logging.getLogger()
        self.config.registry.registerUtility(debug_logger, IDebugLogger)

        self.config.include("cornice")

        self.authz_policy = ACLAuthorizationPolicy()
        self.config.set_authorization_policy(self.authz_policy)

        self.authn_policy = AuthTktAuthenticationPolicy('$3kr1t')
        self.config.set_authentication_policy(self.authn_policy)

        self.config.scan("tests.test_service")
        self.config.scan("tests.test_pyramidhook")
        self.app = TestApp(CatchErrors(self.config.make_wsgi_app()))
        register_service_views(self.config, service)
Beispiel #3
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine

    session_factory = session_factory_from_settings(settings)
    authentication = AuthTktAuthenticationPolicy(
        settings.get('session.secret'), )
    authorization = ACLAuthorizationPolicy()

    config = Configurator(
        settings=settings,
        root_factory=root_factory,
        authentication_policy=authentication,
        authorization_policy=authorization,
        session_factory=session_factory,
    )
    config.add_translation_dirs(
        'colander:locale/',
        'travelcrm:locale/',
    )
    config.add_subscriber('.lib.subscribers.company_schema',
                          'pyramid.events.NewRequest')
    config.add_subscriber('.lib.subscribers.company_settings',
                          'pyramid.events.NewRequest')
    config.add_subscriber('.lib.subscribers.helpers',
                          'pyramid.events.BeforeRender')
    config.add_subscriber('.lib.subscribers.scheduler',
                          'pyramid.events.ApplicationCreated')

    config.add_renderer('pdf', PDFRendererFactory)
    config.add_renderer('sse', SSERendererFactory)
    config.add_static_view('css', 'static/css', cache_max_age=3600)
    config.add_static_view('js', 'static/js', cache_max_age=3600)
    config.add_thumb_view('thumbs')

    config.scan()
    return config.make_wsgi_app()
Beispiel #4
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    initialize_sql(engine)

    authn_policy = AuthTktAuthenticationPolicy('sosecret',
                                               callback=groupfinder)
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings,
                          root_factory='motionman.models.RootFactory',
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy)

    #config = Configurator(settings=settings)
    config.add_static_view('static', 'motionman:static')
    config.add_route('home', '/')

    config.add_route('setting_edit', '/setting/edit')

    config.add_route('user_list', '/user/list')
    config.add_route('user_add', '/user/add')
    config.add_route('user_edit', '/user/edit/{id}')
    config.add_route('user_delete', '/user/delete/{id}')

    config.add_route('motion_list', '/motion/list')
    config.add_route('motion_add', '/motion/add')
    config.add_route('motion_vote', '/motion/vote/{id}/{chips}')
    config.add_route('motion_message', '/motion/message/{id}')

    config.add_route('login', '/login')
    config.add_route('logout', '/logout')

    config.add_view('motionman.views.login.login',
                    context='pyramid.httpexceptions.HTTPForbidden',
                    renderer='motionman:templates/login.pt')

    config.scan('motionman.views')

    return config.make_wsgi_app()
Beispiel #5
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine

    authn_policy = AuthTktAuthenticationPolicy('secret',
                                               callback=groupfinder,
                                               hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()

    config = Configurator(settings=settings, root_factory='myshop.RootFactory')
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)

    config.set_request_property(get_user, 'user', reify=True)
    config.set_request_property(lambda request: DBSession, 'db', reify=True)

    config.include('pyramid_chameleon')

    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    config.add_route('category', '/category/{id}')
    config.add_route('item', '/item/{id}')
    config.add_route('search', '/search')
    config.add_route('annoncement', '/annoncement/{id}')

    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('register', '/register')

    config.add_route('order', '/order')
    config.add_route('cart', '/cart')
    config.add_route('comment', '/comment')

    config.add_route('add_item', '/category/{id}/add')

    config.scan()
    return config.make_wsgi_app()
def main():
    """Create a configured wsgi app"""
    settings = {}
    settings['reload_all'] = os.environ.get('DEBUG', True)
    settings['debug_all'] = os.environ.get('DEBUG', True)
    settings['sqlalchemy.url'] = os.environ.get(
        'DATABASE_URL',
        'postgresql://{}:@localhost:5432/learning_journal'.format(USER))
    engine = sa.engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)

    settings['auth.username'] = os.environ.get('AUTH_USERNAME', 'admin')
    manager = BCRYPTPasswordManager()
    settings['auth.password'] = os.environ.get('AUTH_PASSWORD',
                                               manager.encode('secret'))
    # secret value for session signing:
    secret = os.environ.get('JOURNAL_SESSION_SECRET', 'itsaseekrit')
    session_factory = SignedCookieSessionFactory(secret)
    # add a secret value for auth tkt signing
    auth_secret = os.environ.get('JOURNAL_AUTH_SECRET', 'anotherseekrit')
    # configuration setup
    config = Configurator(
        settings=settings,
        session_factory=session_factory,
        authentication_policy=AuthTktAuthenticationPolicy(secret=auth_secret,
                                                          hashalg='sha512'),
        authorization_policy=ACLAuthorizationPolicy(),
    )
    config.include('pyramid_jinja2')
    config.include('pyramid_tm')
    config.add_static_view('static', os.path.join(here, 'static'))
    config.add_route('home', '/')
    config.add_route('add', '/add')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('detail', '/detail/{id}')
    config.add_route('editview', '/editview')
    config.scan()
    app = config.make_wsgi_app()
    return app
def main():
    """Create a configured wsgi app"""
    settings = {}
    settings['reload_all'] = os.environ.get('DEBUG', True)
    settings['debug_all'] = os.environ.get('DEBUG', True)
    settings['sqlalchemy.url'] = os.environ.get('DATABASE_URL',
                                                'postgresql:///whiteknight')
    engine = sa.engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    settings['auth.username'] = os.environ.get('AUTH_USERNAME', 'admin')
    manager = BCRYPTPasswordManager()
    settings['auth.password'] = os.environ.get('AUTH_PASSWORD',
                                               manager.encode('secret'))
    secret = os.environ.get('JOURNAL_SESSION_SECRET', 'itsaseekrit')
    session_factory = SignedCookieSessionFactory(secret)
    auth_secret = os.environ.get('JOURNAL_AUTH_SECRET', 'anotherseekrit')
    config = Configurator(
        settings=settings,
        session_factory=session_factory,
        authentication_policy=AuthTktAuthenticationPolicy(secret=auth_secret,
                                                          hashalg='sha512',
                                                          debug=True),
        authorization_policy=ACLAuthorizationPolicy(),
    )
    config.add_static_view('static', os.path.join(here, 'static'))
    config.include('pyramid_jinja2')
    config.include('pyramid_tm')
    config.add_route('home', '/')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('feed', '/feed')
    config.add_route('scrape', '/scrape')
    config.add_route('scrape_twitter', '/scrape_twitter')
    config.add_route('tweet', '/tweet/{id}')
    config.add_route('edit_comment', '/edit_comment/{id}')
    config.add_route('remove_one', '/remove_one/{id}')
    config.add_route('delete_all', '/delete_all')
    config.scan()
    app = config.make_wsgi_app()
    return app
Beispiel #8
0
def setup(config):
    """Setup SAML2 auth - to be called when the app starts."""

    # Ensure python-lasso is available.
    if not lasso_loaded:
        raise Exception(
            'SAML2 enabled in settings but python-lasso could not be loaded.\n'
            'Download Lasso from <http://lasso.entrouvert.org/>.')

    # Register the authentication policy.
    config.set_authentication_policy(
        AuthTktAuthenticationPolicy(
            config.get_settings()['saml2.auth_secret'],
            hashalg='sha512',
            callback=get_user_principals,
        ))

    # Add routes for SAML2 views.
    config.add_route('saml2_login', '/login')
    config.add_route('saml2_login_metadata', '/login_metadata')
    config.add_route('saml2_login_success', '/login_success')
    config.add_route('saml2_logout', '/logout')

    # Register SAML2 views. Avoid using the "view_config" decorator as we don't
    # want the views to be added when SAML2 is disabled.
    def add_view(view, **kwargs):
        config.add_view(view,
                        permission=NO_PERMISSION_REQUIRED,
                        http_cache=0,
                        **kwargs)

    add_view(login_view, route_name='saml2_login', renderer='json')
    add_view(login_metadata_view,
             route_name='saml2_login_metadata',
             renderer='string')
    add_view(login_success_view, route_name='saml2_login_success')
    add_view(logout_view, route_name='saml2_logout', renderer='json')

    # The default 403 (forbidden) view produces HTML; change it to a JSON one.
    forbidden_view_config(renderer='json')(forbidden_view)
Beispiel #9
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    session_factory = session_factory_from_settings(settings)

    authn_policy = AuthTktAuthenticationPolicy('A@uth3ntic@t3')
    authz_policy = ACLAuthorizationPolicy()

    config = Configurator(settings=settings,
                          root_factory=Root,
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy,
                          session_factory=session_factory)

    # MongoDB
    def add_mongo_db(event):
        settings = event.request.registry.settings
        url = settings['mongodb.url']
        db_name = settings['mongodb.db_name']
        db = settings['mongodb_conn'][db_name]
        event.request.db = db

    db_uri = settings['mongodb.url']
    MongoDB = pymongo.Connection
    if 'pyramid_debugtoolbar' in set(settings.values()):

        class MongoDB(pymongo.Connection):
            def __html__(self):
                return 'MongoDB: <b>{}></b>'.format(self)

    conn = MongoDB(db_uri)
    config.registry.settings['mongodb_conn'] = conn
    config.add_subscriber(add_mongo_db, NewRequest)

    config.include('pyramid_chameleon')
    config.add_static_view('static', 'forum:static', cache_max_age=3600)
    config.add_route('home', '/')
    config.scan('forum')
    return config.make_wsgi_app()
Beispiel #10
0
def main():
    """Create a configured wsgi app"""
    # configuraton settings
    settings = {}
    settings['reload_all'] = os.environ.get('DEBUG', True)
    settings['debug_all'] = os.environ.get('DEBUG', True)
    settings['db'] = os.environ.get('DATABASE_URL',
                                    'dbname=learning_journal user=edward')
    settings['auth.username'] = os.environ.get('AUTH_USERNAME', 'admin')
    manager = BCRYPTPasswordManager()
    settings['auth.password'] = os.environ.get('AUTH_PASSWORD',
                                               manager.encode('secret'))
    # secret value for session signing:
    secret = os.environ.get('JOURNAL_SESSION_SECRET', 'itsaseekrit')
    session_factory = SignedCookieSessionFactory(secret)
    # secret value for auth signing
    auth_secret = os.environ.get('JOURNAL_AUTH_SECRET', 'anotherseekrit')
    # configuration setup
    config = Configurator(
        settings=settings,
        session_factory=session_factory,
        authentication_policy=AuthTktAuthenticationPolicy(secret=auth_secret,
                                                          hashalg='sha512'),
        authorization_policy=ACLAuthorizationPolicy(),
    )
    config.include('pyramid_jinja2')
    config.add_static_view('static', os.path.join(here, 'static'))
    config.add_route('home', '/')
    config.add_route('add', '/add')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('detail', '/detail/{id:\d+}')
    config.add_route('edit', '/edit/{id:\d+}')
    config.scan()

    jinja2.filters.FILTERS['markdown'] = mdown

    # serve app
    app = config.make_wsgi_app()
    return app
Beispiel #11
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    Base.metadata.create_all()
    session = Session(bind=engine)
    session.query(TempOrder).delete(synchronize_session=False)
    #admin = Admin(Login= "******", Password = "******")
    #session.add(admin)
    session.commit()

    config = Configurator(root_factory=MyFactory,
                          settings=settings,
                          session_factory=my_session_factory)
    config.include('pyramid_jinja2')
    config.add_static_view('static', 'static', cache_max_age=3600)

    config.add_route('home', '/')
    config.add_route('buy', '/buy')
    config.add_route('login', '/login')
    config.add_route('register', '/register')
    config.add_route('order', '/order')
    config.add_route('products', '/products')
    config.add_route('admin', '/admin')
    config.add_route('buyProduct', "/buyProduct/{id}")
    config.add_route('delete', "/delete/{id}")
    config.add_route('reload', "/reload/{id}")
    config.add_route('removeOrder', "/removeOrder/{id}")
    config.add_route('deleteProduct', "/deleteProduct/{id}")
    config.add_route('addProduct', "/addProduct")
    config.add_route('loginAdmin', "/loginAdmin")
    config.add_route('logoutAdmin', "/logoutAdmin")

    #авторизация и аутентификация
    authn_policy = AuthTktAuthenticationPolicy('sosecret', hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)

    config.scan()
    return config.make_wsgi_app()
Beispiel #12
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    init_model()

    session_factory = session_factory_from_settings(settings)
    if 'localization' not in settings:
        settings['localization'] = 'id_ID.UTF-8'
    locale.setlocale(locale.LC_ALL, settings['localization'])
    if 'timezone' not in settings:
        settings['timezone'] = DefaultTimeZone
    config = Configurator(settings=settings,
                          root_factory='opensipkdsig.models.RootFactory',
                          session_factory=session_factory)
    config.include('pyramid_beaker')
    config.include('pyramid_chameleon')

    authn_policy = AuthTktAuthenticationPolicy('sosecret',
                                               callback=group_finder,
                                               hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_request_method(get_user, 'user', reify=True)
    config.add_request_method(get_title, 'title', reify=True)
    config.add_notfound_view(RemoveSlashNotFoundViewFactory())

    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view('deform_static', 'deform:static')
    config.add_static_view('files', settings['static_files'])
    for name, path, title in routes:
        config.add_route(name, path)
    config.scan()
    app = config.make_wsgi_app()
    from paste.translogger import TransLogger
    app = TransLogger(app, setup_console_handler=False)
    return app
Beispiel #13
0
def main(global_config, **settings):
    """
    Main entrypoint for wsgi
    """
    my_session_factory = SignedCookieSessionFactory('itsaseekreet')

    config = Configurator(settings=settings,
                          session_factory=my_session_factory)
    config.include('pyramid_jinja2')

    authn_policy = AuthTktAuthenticationPolicy(
        settings['BarLibrary.secret'], callback=None,
        hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)

    config.add_static_view(name='static', path='barlibrary:static')
    config.include('.models')
    config.include('.routes')
    config.scan()
    return config.make_wsgi_app()
Beispiel #14
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    authn_policy = AuthTktAuthenticationPolicy(
        'sosecret', callback=groupfinder)
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings,
                          root_factory='tutorial.models.RootFactory')
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('view_wiki', '/')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('view_page', '/{pagename}')
    config.add_route('add_page', '/add_page/{pagename}')
    config.add_route('edit_page', '/{pagename}/edit_page')
    config.scan()
    return config.make_wsgi_app()
Beispiel #15
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    if 'DATABASE_URL' in os.environ:
        settings['sqlalchemy.url'] = os.environ['DATABASE_URL']
    engine = engine_from_config(settings, 'sqlalchemy.')
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    secret = os.environ.get('AUTH_SECRET', 'somesecret')
    config = Configurator(settings=settings)
    # config = Configurator(
    #     settings=settings,
    #     authentication_policy=authentication_policy,
    #     authorization_policy=authorization_policy,
    #     root)
    config = Configurator(
        settings=settings,
        authentication_policy=AuthTktAuthenticationPolicy(
            secret,
            hashalg='sha512'
        ),
        authorization_policy=ACLAuthorizationPolicy(),
        root_factory=DefaultRoot,
    )
    config.include('pyramid_jinja2')
    config.add_static_view('static', 'static', cache_max_age=3600)

    config.add_route('list', '/')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('add_entry', '/create')
    config.add_route('delete_entry', '/delete_entry/{entry_id}')
    # config.add_route('delete_entry', '/')
    config.add_route('detail', '/view/{entry_id}')
    config.add_route('edit', '/edit/{entry_id}')

    config.scan()
    return config.make_wsgi_app()
Beispiel #16
0
def make_wsgi_app(global_config: Dict[Any, Any], **settings) -> Router:
    # Logging
    main_only_quicksetup_rootlogger()
    logging.getLogger('sqlalchemy').setLevel(logging.WARNING)

    # log.debug(f"global_config: {global_config!r}")
    # log.debug(f"settings: {settings!r}")

    # Database
    engine = engine_from_config(settings,
                                NlpServerConfigKeys._SQLALCHEMY_PREFIX,
                                **SQLALCHEMY_COMMON_OPTIONS)
    # ... add to config - pool_recycle is set to create new sessions every 7h
    sqla_url = get_safe_url_from_engine(engine)
    log.info(f"Using database {sqla_url!r}")
    dbsession.configure(bind=engine)
    Base.metadata.bind = engine

    # Pyramid
    config = Configurator(settings=settings)

    # Security policies
    authn_policy = AuthTktAuthenticationPolicy(
        settings[NlpServerConfigKeys.NLP_WEBSERVER_SECRET],
        secure=True,  # only allow requests over HTTPS
        hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)

    # Compression
    config.add_tween("cardinal_pythonlib.pyramid.compression.CompressionTweenFactory")  # noqa

    # Routes
    config.add_route('index', '/')
    config.scan('.views')

    # Create WSGI app
    return config.make_wsgi_app()
Beispiel #17
0
def configure_auth(config, settings):

    extra_authn_policy = {}

    if 'groups_callback' in settings:
        extra_authn_policy['callback'] = settings['groups_callback']

    if not settings.get('testing'):
        authn_policy = SessionAuthenticationPolicy(prefix='session',
                                                   **extra_authn_policy)
    else:
        authn_policy = AuthTktAuthenticationPolicy(settings.get(
            'auth_tk_secret', '1234'),
                                                   hashalg='sha512',
                                                   wild_domain=False,
                                                   **extra_authn_policy)

    authz_policy = ACLAuthorizationPolicy()

    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    return config
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    authn_policy = AuthTktAuthenticationPolicy('sosecret',
                                               callback=groupfinder)
    authz_policy = ACLAuthorizationPolicy()
    zodb_uri = settings.get('zodb_uri', False)
    if zodb_uri is False:
        raise ValueError("No 'zodb_uri' in application configuration.")

    finder = PersistentApplicationFinder(zodb_uri, appmaker)

    def get_root(request):
        return finder(request.environ)

    config = Configurator(root_factory=get_root,
                          settings=settings,
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy)
    config.add_static_view('static', 'tutorial:static')
    config.scan('tutorial')
    return config.make_wsgi_app()
Beispiel #19
0
def includeme(config):
    auth_secret = environ.get(
        'AUTH_SECRET',
        '\x85v\xaf\xf9:3I\x0c\x98\x80\xec\x9e\xe3\xd4\xee\xba\xdfst\xb5')
    authz_policy = ACLAuthorizationPolicy()
    authn_policy = AuthTktAuthenticationPolicy(
        secret=auth_secret,
        hashalg='sha512',
    )

    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.set_default_permission('view')
    config.set_root_factory(PyramidStocksRoot)

    session_secret = environ.get(
        'SESSION_SECRET',
        '\xc0\xa37\xc6\x15\xb4B7\x16\xe9\xaa[^<`\x7f;p\x18\x1f')
    session_factory = SignedCookieSessionFactory(session_secret)

    config.set_session_factory(session_factory)
    config.set_default_csrf_options(require_csrf=True)
Beispiel #20
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    authn_policy = AuthTktAuthenticationPolicy('mysecret',
                                               timeout=30000,
                                               callback=group_finder)
    authz_policy = ACLAuthorizationPolicy()

    config = Configurator(settings=settings,
                          root_factory=RootFactory,
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy)

    config.include('pyramid_jinja2')

    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')

    config.scan()
    return config.make_wsgi_app()
Beispiel #21
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    with Configurator(settings=settings, request_factory=MyRequest) as config:
        config.include('pyramid_chameleon')

        # Security policies
        authn_policy = AuthTktAuthenticationPolicy(settings['tutorial.secret'],
                                                   hashalg='sha512')
        authz_policy = ACLAuthorizationPolicy()
        config.set_authentication_policy(authn_policy)
        config.set_authorization_policy(authz_policy)

        config.include('.models')
        config.include('pyramid_jinja2')
        config.include('.routes')
        config.include('pyramid_mailer')
        config.scan('.views')
        config.scan('.process_request')
        config.add_tween('webapp.access_tween.access_tween_factory')
        config.add_static_view('deform_static', 'deform:static/')
    return config.make_wsgi_app()
Beispiel #22
0
def main(global_config, **settings):
    with Configurator(settings=settings, root_factory=Root) as config:
        config.set_request_factory(Request)
        # mako
        registry_settings = config.registry.settings
        if 'mako.directories' not in registry_settings:
            registry_settings['mako.directories'] = 'wim_web:web/templates'
        # Configuration to show 'None' as empty string
        registry_settings['mako.imports'] = (
            'from markupsafe import escape_silent')
        registry_settings['mako.default_filters'] = 'escape_silent'

        # session
        session_factory = SignedCookieSessionFactory(
            settings['wim_web.session_secret'])
        config.set_session_factory(session_factory)

        # auth
        authn_policy = AuthTktAuthenticationPolicy(settings['wim_web.secret'],
                                                   callback=groupfinder,
                                                   hashalg='sha512')
        authz_policy = ACLAuthorizationPolicy()
        config.set_authentication_policy(authn_policy)
        config.set_authorization_policy(authz_policy)

        # includes
        config.include('pyramid_tm')
        config.include('wim_web.database')
        config.include('pyramid_mako')

        # frontend
        config.add_static_view('static',
                               'wim_web:web/static',
                               cache_max_age=3600)

        # backend
        config.scan('wim_web.web.views')
        initialize_forms()
    return config.make_wsgi_app()
Beispiel #23
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    set_cache_regions_from_settings(settings)

    authentication_policy = AuthTktAuthenticationPolicy('seekrit',
                                                        callback=groupfinder)
    authorization_policy = ACLAuthorizationPolicy()

    config = Configurator(settings=settings,
                          root_factory=RootFactory,
                          authentication_policy=authentication_policy,
                          authorization_policy=authorization_policy)

    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine

    config.set_session_factory(session_factory_from_settings(settings))

    config.add_mako_renderer('.html')

    json_renderer = JSON()

    def datetime_adapter(obj, request):
        return obj.isoformat()

    json_renderer.add_adapter(datetime.datetime, datetime_adapter)
    config.add_renderer('json', json_renderer)

    # Add static routes (required for static_path in Mako)
    config.add_static_view(name=settings.get('webassets.base_url'),
                           path='static')

    config.include(include_views)
    config.include(include_css)
    config.include(include_js)
    config.scan()
    return config.make_wsgi_app()
Beispiel #24
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    authn_policy = AuthTktAuthenticationPolicy('seekrit')
    authz_policy = ACLAuthorizationPolicy()
    my_session_factory = UnencryptedCookieSessionFactoryConfig('itsaseekreet')
    config = Configurator(
        settings=settings,
        root_factory='scribeui_pyramid.modules.app.resources.RootFactory',
        authentication_policy=authn_policy,
        authorization_policy=authz_policy,
        session_factory=my_session_factory)
    config.include('pyramid_jinja2')
    config.include('.modules')
    config.add_jinja2_search_path("scribeui_pyramid:templates")
    environment = config.get_jinja2_environment()
    environment.globals['time'] = get_rid()
    environment.globals['getattr'] = jinja_getattr
    config.add_static_view('static',
                           'scribeui_pyramid:static',
                           cache_max_age=3600)
    return config.make_wsgi_app()
Beispiel #25
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    authn_policy = AuthTktAuthenticationPolicy(
        str(uuid4()), callback=group_finder, hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings,
                          root_factory='brainbro.models.RootFactory')
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)
    config.include('pyramid_jinja2')
    config.add_static_view('static', path='static', cache_max_age=3600)
    
    config.add_route('home', '/')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')

    config.add_route('create_session', '/session/create')
    config.add_route('destroy_session', '/session/destroy/{session}')
    
    config.scan()
    return config.make_wsgi_app()
Beispiel #26
0
def main(global_config, **settings):
    config = Configurator(settings=settings,
                          root_factory='tutorial.models.Root')

    # Security policies
    authn_policy = AuthTktAuthenticationPolicy(
        'sosecret', callback=groupfinder, hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)

    config.add_route('wiki_view', '/')
    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('wikipage_add', '/add')
    config.add_route('wikipage_view', '/{uid}')
    config.add_route('wikipage_edit', '/{uid}/edit')
    config.add_route('wikipage_delete', '/{uid}/delete')
    config.add_static_view(name='static', path='tutorial:static')
    config.add_static_view('deform_static', 'deform:static/')
    config.scan()
    return config.make_wsgi_app()
Beispiel #27
0
def main(global_config, **settings):
    """This function returns a Pyramid WSGI application."""

    authn_policy = AuthTktAuthenticationPolicy(
        settings["auth.secret"],
        cookie_name="ushauri_" + settings["country"] + "_auth_tkt",
    )

    authz_policy = ACLAuthorizationPolicy()

    config = Configurator(
        settings=settings,
        authentication_policy=authn_policy,
        authorization_policy=authz_policy,
    )

    apppath = os.path.dirname(os.path.abspath(__file__))

    config.include(".models")
    # Load and configure the host application
    load_environment(settings, config, apppath)
    return config.make_wsgi_app()
Beispiel #28
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    session_factory = session_factory_from_settings(settings)
    authn_policy = AuthTktAuthenticationPolicy('supersecret',
                                               callback=groupfinder)
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings,
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy,
                          root_factory=Root)
    config.set_session_factory(session_factory)
    config.include('pyramid_fanstatic')
    config.include('pyramid_beaker')
    config.include('pyramid_alfresco.oauth')
    config.add_alfresco_login_from_settings(prefix='alfresco.')
    config.add_static_view('static', 'static', cache_max_age=3600)

    config.add_route('home', '/')
    config.add_route('folders', '/sites/{site}/folders')
    config.add_route('path', '/path/{path:.*}')
    config.add_route('details', '/details/{path:.*}')
    config.add_route('delete', '/delete/{path:.*}')
    config.add_route('file', '/file/{path:.*}')
    config.add_route('createFolder', '/createFolder/{path:.*}')
    config.add_route('uploadFile', '/uploadFile/{path:.*}')

    config.add_route('docs_home', '/docs')
    config.add_route('docs_details', '/docs/details/{id:.*}')
    config.add_route('createDoc', '/docs/createDoc')

    config.add_route('login', '/login')
    config.add_route('logout', '/logout')
    config.add_route('oauth', '/alfresco_oauth')
    config.scan()
    return config.make_wsgi_app()
Beispiel #29
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    authentication_policy = AuthTktAuthenticationPolicy('somesecret',
                                                        hashalg='sha512')
    authorization_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings,
                          authentication_policy=authentication_policy,
                          authorization_policy=authorization_policy)
    config.include('pyramid_jinja2')
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    config.add_route('blog', '/blog/{id:\d+}/{slug}')
    config.add_route('blog_action',
                     '/blog/{action}',
                     factory='pyramid_blogr.security.BlogRecordFactory')
    config.add_route('auth', '/sign/{action}')
    config.scan()
    return config.make_wsgi_app()
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = get_db_engine()
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine

    authentication_policy = AuthTktAuthenticationPolicy(
        AUTH_SECRET,
        callback=get_principal_indentifiers,
    )
    authorization_policy = ACLAuthorizationPolicy()

    config = Configurator(
        settings=settings,
        authentication_policy=authentication_policy,
        authorization_policy=authorization_policy,
        root_factory=RootFactory,
    )

    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_static_view(name='media', path=MEDIA_ROOT, cache_max_age=3600)

    # Update redis.sessions.url
    config.registry.settings['redis.sessions.url'] = get_redis_url()

    config.include('pyramid_redis_sessions')
    config.include('pyramid_jinja2')

    # Add .html extension as a renderer
    config.add_jinja2_renderer('.html')

    # Scan views for route configuration
    config.include('polls.views.polls')
    config.include('polls.views.auth')

    config.scan()

    return config.make_wsgi_app()