def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ # this call inits/enable/disable the cache cache.refresh() config = Configurator(settings=settings) # session configuration hex_secret = bytes.fromhex(settings['geru.session_secret'].strip()) factory = EncryptedCookieSessionFactory(hex_secret) # other config ad lib. config.set_session_factory(factory) # tween to handle the session and track the urls visited config.add_tween( 'geru.tweens.user_tracker_tween', over=pyramid.tweens.MAIN ) # adding here the packages used in all envs config.include('pyramid_jinja2') config.include('pyramid_restful') config.include('.models') config.include('.routes') config.scan() return config.make_wsgi_app()
def includeme(config): factory = EncryptedCookieSessionFactory(SECRET, timeout=None) config.set_session_factory(factory) config.add_static_view('static', 'static', cache_max_age=3600) config.add_route('quotes_list', '/quotes') config.add_route('quote_detail', '/quotes/{pk}') config.add_route('log_requests_list', '/requests') config.add_route('home', '/')
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(settings['buddy.site_secret'], callback=groupfinder,hashalg='sha512',max_age=864000, timeout=3600,reissue_time=120) authz_policy = ACLAuthorizationPolicy() hex_secret = settings['buddy.session_secret'].strip() secret = binascii.unhexlify(hex_secret) session_factory = EncryptedCookieSessionFactory(secret) config = Configurator(settings=settings, authentication_policy=authn_policy, authorization_policy=authz_policy, session_factory=session_factory) cache = RootFactory.__acl__ config.set_root_factory(RootFactory) config.add_request_method(get_user, 'user', reify=True) config.add_subscriber(add_renderer_globals, BeforeRender) config.set_default_csrf_options(require_csrf=True) config.add_static_view('static', 'static',cache_max_age=5184000) config.add_cache_buster( 'buddy:static/', QueryStringConstantCacheBuster(str(int(time.time())))) config.add_static_view('deform_static', 'deform_bootstrap:static',cache_max_age=5184000) config.add_cache_buster( 'buddy:deform_bootstrap/static/', QueryStringConstantCacheBuster(str(int(time.time())))) config.add_static_view('images','buddy:images') config.add_cache_buster( 'buddy:images/', QueryStringConstantCacheBuster(str(int(time.time())))) config.include('pyramid_mailer') config.include("pyramid_mako") config.include("pyramid_retry") config.include('buddy.views.noprefix_include') config.include('buddy.views.profile_include') config.include('buddy.views.advice.noprefix_route') config.include('buddy.views.listing.noprefix_route') config.include('buddy.views.users_include',route_prefix='users') config.include('buddy.views.listing.add_route',route_prefix='listings') config.include('buddy.views.listing.add_route_listing_ajax',route_prefix="listings-ajax") config.include('buddy.views.dashboard.add_route',route_prefix='dashboard') config.include('buddy.views.advice.blog_route',route_prefix='blogs') config.include('buddy.views.inbox.add_route', route_prefix='message') config.include('buddy.views.document.add_route',route_prefix='corp') config.include("buddy.views.search.add_route", route_prefix="prosearch") config.include("buddy.views.pricing.pricing") config.include("buddy.pyramid_storage.s3") config.scan() return config.make_wsgi_app()
def main(global_config, **settings): config = Configurator(settings=settings) # database engine = get_engine(settings) DBSession.configure(bind=engine) Base.metadata.bind = engine # authentication/authorization policies authn_policy = AuthTktAuthenticationPolicy( '^4VhV0sRwqZ' + 'O-y_If{bea$+v;}qQKl-9.F>>4yM[RQv,lDCfO>cYp2N/gzQiq+R', timeout=3600 * 4, reissue_time=240, max_age=3600 * 24, callback=m_auth.group_finder, hashalg='sha512') authz_policy = ACLAuthorizationPolicy() config.add_view_predicate('permissions', PermissionsPredicate) config.set_authentication_policy(authn_policy) config.set_authorization_policy(authz_policy) # add custom methods to the request config.set_request_factory(CustomRequest) config.add_request_method('agallery.models.auth.get_user', 'user', reify=True) config.add_request_method('agallery.models.auth.get_login', 'login', property=True, reify=True) config.add_request_method('agallery.models.auth.check_permissions', 'has_permission') config.add_request_method('agallery.Configurations.get_configs', 'config', property=True, reify=True) # session configuration hex_secret = bytes.fromhex(settings['agallery.session_secret'].strip()) session_factory = EncryptedCookieSessionFactory(hex_secret) config.set_session_factory(session_factory) # files config.add_static_view('static', 'agallery:static', cache_max_age=0) config.add_static_view('userfiles', 'userfiles', cache_max_age=0) # template renderers config.add_renderer('.html', 'pyramid_jinja2.renderer_factory') config.include('pyramid_jinja2') config.include('.models') config.include('.routes') config.scan() return config.make_wsgi_app()
def includeme(config): """Setup the session handling in the configuration.""" secret = unhexlify(config.get_settings()['app.session_secret'].strip()) factory = EncryptedCookieSessionFactory(secret, cookie_name='toja', timeout=86400) config.set_session_factory(factory) config.add_request_method(get_current_user, 'current_user', reify=True) config.get_jinja2_environment().filters['logged_in'] = logged_in
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ with Configurator(settings=settings, root_factory='.resources.Root') as config: config.include('.models') config.include('pyramid_jinja2') config.include('.routes') config.include('.security') config.scan(ignore=['.tests', '.migration_tests']) config.set_default_permission('view') hex_secret = config.get_settings()['session_secret'].strip() secret = binascii.unhexlify(hex_secret) factory = EncryptedCookieSessionFactory(secret=secret, serializer=JSONSerializer(), timeout=86400) config.set_session_factory(factory) return config.make_wsgi_app()
def includeme(config): """Setup the session handling in the configuration.""" global UserModel, login_route, store_current settings = config.get_settings() UserModel = settings['pwh.pyramid_session.user'] login_route = settings['pwh.pyramid_session.login_route'] if 'pwh.pyramid_session.store_current' in settings and \ settings['pwh.pyramid_session.store_current'].lower() == 'false': store_current = False secret = unhexlify(settings['pwh.pyramid_session.secret'].strip()) factory = EncryptedCookieSessionFactory( secret, cookie_name=settings['pwh.pyramid_session.cookie_name'], timeout=int(settings['pwh.pyramid_session.timeout']) if 'pwh.pyramid_session.timeout' in settings else 1200) config.set_session_factory(factory) config.add_request_method(get_current_user, 'current_user', reify=True) config.set_default_csrf_options(require_csrf=True) config.get_jinja2_environment().filters['logged_in'] = logged_in
def make_config(settings): # pragma: no cover """Returns a Pyramid configurator.""" config = Configurator(settings=settings) config.add_settings({ "mako.directories": "fanboi2:templates", "dogpile.backend": "dogpile.cache.redis", "dogpile.arguments.url": config.registry.settings["redis.url"], "dogpile.redis_expiration_time": 60 * 60 * 1, # 1 hour "dogpile.arguments.distributed_lock": True, "tm.activate_hook": tm_maybe_activate, }) if config.registry.settings["server.development"]: config.add_settings({ "pyramid.reload_templates": True, "pyramid.debug_authorization": True, "pyramid.debug_notfound": True, "pyramid.default_locale_name": "en", "debugtoolbar.hosts": "0.0.0.0/0", }) config.include("pyramid_debugtoolbar") config.include("pyramid_mako") config.include("pyramid_services") session_secret_hex = config.registry.settings["session.secret"].strip() session_secret = binascii.unhexlify(session_secret_hex) session_factory = EncryptedCookieSessionFactory(session_secret, cookie_name="_session", timeout=3600, httponly=True) config.set_session_factory(session_factory) config.set_csrf_storage_policy(SessionCSRFStoragePolicy(key="_csrf")) config.set_request_property(route_name) config.add_request_method(tagged_static_path) config.add_route("robots", "/robots.txt") config.include("fanboi2.auth") config.include("fanboi2.cache") config.include("fanboi2.filters") config.include("fanboi2.geoip") config.include("fanboi2.models") config.include("fanboi2.redis") config.include("fanboi2.serializers") config.include("fanboi2.services") config.include("fanboi2.tasks") config.include("fanboi2.views.admin", route_prefix="/admin") config.include("fanboi2.views.api", route_prefix="/api") config.include("fanboi2.views.pages", route_prefix="/pages") config.include("fanboi2.views.boards", route_prefix="/") config.add_static_view("static", "static", cache_max_age=3600) return config
def includeme(config): settings = config.get_settings() hex_secret = settings['session.session_secret'].strip() secret = binascii.unhexlify(hex_secret) factory = EncryptedCookieSessionFactory(secret) # other config ad lib. config.set_session_factory(factory)