def main(global_config, **settings): """This function returns a Pyramid WSGI application.""" engine = engine_from_config(settings, "sqlalchemy.") DBSession.configure(bind=engine) config = Configurator(settings=settings) config.add_settings( {"mako.imports": "from shoppinglist.filters import json"} ) config.include("pyramid_mako") config.include("pyramid_tm") config.add_static_view("static", "static", cache_max_age=365*24*3600) config.add_cache_buster("static", ChecksumCacheBuster("static/SHA256SUMS")) config.add_route("home", "/") # Let's go nuts with REST, why don't we? config.add_route("list_items", "/api/items", request_method="GET") config.add_route("add_item", "/api/items", request_method="POST") config.add_route("remove_item", "/api/items/{id}", request_method="DELETE") config.add_route( "check_item", "/api/items/{id}/checked", request_method="POST" ) config.add_route( "uncheck_item", "/api/items/{id}/checked", request_method="DELETE" ) config.add_route("clear_list", "/api/items", request_method="DELETE") config.scan() return config.make_wsgi_app()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(settings=settings) config.include('pyramid_jinja2') config.include('pyramid_beaker') config.include('pyramid_excel') config.add_static_view('static', 'static') config.add_cache_buster( 'static', QueryStringConstantCacheBuster(str(int(time.time())))) config.add_route('home', '/') config.add_route('score', '/score') config.add_route('result', '/score/result') config.add_route('option', '/score/option') config.add_route('statistics', '/statistics') config.add_route('re_statistics', '/statistics/refresh') config.add_route('analysis', '/analysis') config.scan() return config.make_wsgi_app()
def application(_global_config, **settings): """ Returns the Pyramid WSGI application. """ config = Configurator(settings=settings) config.include('pyramid_debugtoolbar') config.include('pyramid_mako') config.add_subscriber(set_renderer_context, BeforeRender) config.add_static_view( name='assets', path='clang_ast_webservice.assets:', cache_max_age=2592000) config.add_cache_buster( 'clang_ast_webservice.assets:', QueryStringConstantCacheBuster(assets_version)) config.include(add_json_renderer) config.include('.index') return config.make_wsgi_app()
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): """ This function returns a Pyramid WSGI application. """ # Patch in all environment variables settings.update(get_dbas_environs()) settings.update(get_key_pair()) # Patch in beaker url settings.update(get_db_environs(key="session.url", db_name="beaker")) # authentication and authorization authn_policy = AuthTktAuthenticationPolicy(settings["authn.secret"], callback=groupfinder, hashalg='sha512', wild_domain=False) authz_policy = ACLAuthorizationPolicy() # load database settings.update( get_db_environs("sqlalchemy.discussion.url", db_name="discussion")) discussion_engine = engine_from_config(settings, "sqlalchemy.discussion.") load_discussion_database(discussion_engine) # session management and cache region support session_factory = session_factory_from_settings(settings) set_cache_regions_from_settings(settings) # creating the configurator config = Configurator(settings=settings, authentication_policy=authn_policy, authorization_policy=authz_policy, root_factory='dbas.security.RootFactory', session_factory=session_factory) config.add_translation_dirs( 'dbas:locale', 'admin:locale') # add this before the locale negotiator config.set_locale_negotiator(_locale_negotiator) config.set_default_csrf_options(require_csrf=True) # Include apps config.include('api', route_prefix='/api') config.include('api.v2', route_prefix='/api/v2') config.include('admin', route_prefix='/admin') config.include('graph', route_prefix='/graph') config.include('websocket', route_prefix='/websocket') # more includes are in the config config.include('pyramid_chameleon') config.include('pyramid_mailer') config.include('pyramid_tm') config.add_static_view(name='swagger-ui', path='api:swagger-ui/', cache_max_age=3600) config.add_static_view(name='static', path='dbas:static/', cache_max_age=3600) config.add_static_view(name='websocket', path='websocket:static/', cache_max_age=3600) config.add_static_view(name='admin', path='admin:static/', cache_max_age=3600) config.add_cache_buster( 'static', QueryStringConstantCacheBuster(str(int(time.time())))) config.add_cache_buster( 'admin:static/', QueryStringConstantCacheBuster(str(int(time.time())))) config.add_cache_buster( 'websocket:static/', QueryStringConstantCacheBuster(str(int(time.time())))) # adding main routes config.add_route('main_page', '/') config.add_route('main_settings', '/settings') config.add_route('main_notification', '/notifications') config.add_route('main_news', '/news') config.add_route('main_imprint', '/imprint') config.add_route('main_privacy', '/privacy_policy') config.add_route('main_faq', '/faq') config.add_route('main_batman', '/batman') config.add_route('main_docs', '/docs') config.add_route('main_experiment', '/fieldexperiment') config.add_route('main_user', r'/user/{uid:\d+}') config.add_route('main_graphiql', '/graphiql') config.add_route('main_api', '/api') config.add_route('discussion_overview', '/mydiscussions') config.add_route('health', '/health') # ajax for navigation logic, administration, settings and editing/viewing log config.add_route('user_login', '{url:.*}user_login') config.add_route('oauth_start', "/oauth") config.add_route('oauth', '/oauth/{service:(facebook|google|twitter|github)}') config.add_route('user_logout', 'user/logout') config.add_route('user_delete', 'user/delete') config.add_route('set_new_start_argument', '{url:.*}set_new_start_argument') config.add_route('set_new_start_premise', '{url:.*}set_new_start_premise') config.add_route('set_new_premises_for_argument', '/{url:.*}set_new_premises_for_argument') config.add_route('set_correction_of_statement', '/{url:.*}set_correction_of_statement') config.add_route('set_new_issue', '/{url:.*}set_new_issue') config.add_route('get_logfile_for_statements', '/{url:.*}get_logfile_for_statements') config.add_route('get_shortened_url', '/{url:.*}get_shortened_url') config.add_route('user_registration', '/{url:.*}user_registration') config.add_route('user_password_request', '/{url:.*}user_password_request') config.add_route('fuzzy_search', '/{url:.*}fuzzy_search') config.add_route('fuzzy_nickname_search', '/{url:.*}fuzzy_nickname_search') config.add_route('switch_language', '{url:.*}switch_language{params:.*}') config.add_route('send_notification', '{url:.*}send_notification') config.add_route('get_infos_about_argument', '/{url:.*}get_infos_about_argument') config.add_route('get_user_with_same_opinion', '/{url:.*}get_user_with_same_opinion') config.add_route('get_public_user_data', '/{url:.*}get_public_user_data') config.add_route('get_temp_key', "get_temp_key") config.add_route('get_user_history', 'get_user_history') config.add_route('get_all_edits', 'get_all_edits') config.add_route('get_all_posted_statements', 'get_all_posted_statements') config.add_route('get_all_argument_clicks', 'get_all_argument_clicks') config.add_route('get_all_statement_clicks', 'get_all_statement_clicks') config.add_route('get_all_marked_arguments', 'get_all_marked_arguments') config.add_route('get_all_marked_statements', 'get_all_marked_statements') config.add_route('set_user_setting', 'set_user_setting') config.add_route('set_user_language', 'set_user_language') config.add_route('delete_user_history', 'delete_user_history') config.add_route('delete_statistics', 'delete_statistics') config.add_route('get_news', 'get_news') config.add_route('send_news', 'send_news') config.add_route('notifications_read', 'notifications_read') config.add_route('notifications_delete', 'notifications_delete') config.add_route('get_arguments_by_statement_uid', r'get_arguments_by_statement/{statement_id:\d+}') config.add_route('flag_argument_or_statement', '{url:.*}flag_argument_or_statement') config.add_route('split_or_merge_statement', '{url:.*}split_or_merge_statement') config.add_route('split_or_merge_premisegroup', '{url:.*}split_or_merge_premisegroup') config.add_route('review_delete_argument', '{url:.*}review_delete_argument') config.add_route('review_optimization_argument', '{url:.*}review_optimization_argument') config.add_route('review_duplicate_statement', '{url:.*}review_duplicate_statement') config.add_route('review_edit_argument', '{url:.*}review_edit_argument') config.add_route('review_splitted_premisegroup', '{url:.*}review_splitted_premisegroup') config.add_route('review_merged_premisegroup', '{url:.*}review_merged_premisegroup') config.add_route('undo_review', '{url:.*}undo_review') config.add_route('cancel_review', '{url:.*}cancel_review') config.add_route('review_lock', '{url:.*}review_lock') config.add_route('revoke_statement_content', '{url:.*}revoke_statement_content') config.add_route('revoke_argument_content', '{url:.*}revoke_argument_content') config.add_route('get_references', '{url:.*}get_references') config.add_route('set_references', '{url:.*}set_references') config.add_route('set_seen_statements', '{url:.*}set_seen_statements') config.add_route('mark_statement_or_argument', '{url:.*}mark_statement_or_argument') config.add_route('set_discussion_properties', '{url:.*}set_discussion_properties') config.add_route('get_suggestion_with_similarity_to', '/search') # logic at the end, otherwise the * pattern will do shit config.add_route( 'discussion_support', r'/discuss/{slug}/support/{arg_id_user:\d+}/{arg_id_sys:\d+}') config.add_route( 'discussion_reaction', r'/discuss/{slug}/reaction/{arg_id_user:\d+}/{relation}/{arg_id_sys:\d+}' ) config.add_route('discussion_dontknow_argument', r'/discuss/{slug}/justify/{argument_id:\d+}/dontknow') config.add_route('discussion_justify_statement', r'/discuss/{slug}/justify/{statement_id:\d+}/{attitude}') config.add_route( 'discussion_justify_argument', r'/discuss/{slug}/justify/{argument_id:\d+}/{attitude}/{relation}') config.add_route('discussion_attitude', r'/discuss/{slug}/attitude/{statement_id:\d+}') config.add_route('discussion_choose', r'/discuss/{slug}/choose*pgroup_ids') config.add_route('discussion_jump', r'/discuss/{slug}/jump/{argument_id:\d+}') config.add_route('discussion_finish', r'/discuss/{slug}/finish/{argument_id:\d+}') config.add_route('discussion_exit', '/discuss/exit') config.add_route('discussion_start', '/discuss') config.add_route('discussion_start_with_slash', '/discuss/') config.add_route('discussion_init_with_slug', '/discuss/{slug}') config.add_route('discussion_init_with_slug_with_slash', '/discuss/{slug}/') # review section config.add_route('review_index', '/review') config.add_route('review_reputation', '/review/reputation') config.add_route('review_history', '/review/history') config.add_route('review_ongoing', '/review/ongoing') config.add_route('review_queue', '/review/{queue}') config.scan() return config.make_wsgi_app()
def includeme(config: Configurator) -> None: config.add_static_view("static", "static", cache_max_age=3600) config.add_cache_buster( "zam_repondeur:static/", ContentHashCacheBuster(package="zam_repondeur", base_path="static/"), )
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(settings=settings) config.include('pyramid_jinja2') # Insecure Session # https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/sessions.html#sessions-chapter my_session_factory = SignedCookieSessionFactory( 'insecure-but-digitally-signed-382746', serializer=JSONSerializer()) config.set_session_factory(my_session_factory) # Cache busting of static assets # See https://docs.pylonsproject.org/projects/pyramid/en/1.10-branch/narr/assets.html#cache-busting config.add_static_view('static', 'static', cache_max_age=3600) config.add_cache_buster( 'arscca:static/', QueryStringConstantCacheBuster(str(int(time.time())))) config.add_route('admin_clear_run_groups', '/admin/run_groups/clear') config.add_route('admin_generate_run_groups', '/admin/run_groups/generate') config.add_route('admin_run_groups', '/admin/run_groups') config.add_route('calendar', '/calendar') config.add_route('calendar_slash', '/calendar/') config.add_route('calendar_plain', '/calendar/plain') config.add_route('exception', '/exception') config.add_route('help_index', '/help') config.add_route('help_index_slash', '/help/') config.add_route('help_show', '/help/{document_name}') config.add_route('opinion_index', '/opinion') config.add_route('opinion_index_slash', '/opinion/') config.add_route('opinion_show', '/opinion/{document_name}') config.add_route('driver', '/drivers/{slug}') config.add_route('drivers', '/drivers') config.add_route('drivers_slash', '/drivers/') config.add_route('event', '/events/{date}') config.add_route('events', '/events') # redirects to home config.add_route('events_slash', '/events/') # redirects to home (slash is distinct) config.add_route('index', '/') config.add_route('javascript_errors', '/javascript_errors') config.add_route('joomla_test__home_page_photos', '/joomla_test/home_page_photos') config.add_route('joomla_test__home_page_calendar', '/joomla_test/home_page_calendar') config.add_route('live_event', '/live') config.add_route('live_event_drivers', '/live/drivers') config.add_route('live_event_raw', '/live/raw') config.add_route('live_event_revision', '/live/revision') config.add_route('live_event_update_redis', '/live/update_redis') config.add_route('msreg', '/msreg') config.add_route('msreg_upload', '/msreg/upload', request_method='POST') config.add_route('msreg_download', '/msreg/{download_filename}', request_method='GET') config.add_route('national_event', '/national_events/{year}') config.add_route('photo_upload_create', '/photos/upload', request_method='POST') config.add_route('photo_upload_new', '/photos/upload', request_method='GET') config.add_route('photos', '/photos') config.add_route('photos_slash', '/photos/') config.add_route('photos__teaser', '/photos/teaser') config.add_route('report', '/standings') config.add_route('run_groups', '/run_groups') config.scan() config.include('pyramid_exclog') return config.make_wsgi_app()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ # Patch in all environment variables settings.update(get_dbas_environs()) # Patch in beaker url settings.update(get_db_environs(key="session.url", db_name="beaker")) # authentication and authorization authn_policy = AuthTktAuthenticationPolicy(settings["authn.secret"], callback=groupfinder, hashalg='sha512') authz_policy = ACLAuthorizationPolicy() # load database settings.update( get_db_environs("sqlalchemy.discussion.url", db_name="discussion")) discussion_engine = engine_from_config(settings, "sqlalchemy.discussion.") load_discussion_database(discussion_engine) # session management and cache region support session_factory = session_factory_from_settings(settings) set_cache_regions_from_settings(settings) # PLEASE USE THIS CODE TO READ CUSTOM SETTINGS FROM THE INI FILES # include custom parts # sections = ['service'] # log settings # log = logging.getLogger(__name__) # for s in sections: # try: # parser = ConfigParser() # parser.read(global_config['__file__']) # custom_settings = dict() # for k, v in parser.items('settings:{}'.format(s)): # custom_settings['settings:{}:{}'.format(s, k)] = v # settings.update(custom_settings) # except NoSectionError as e: # log.debug('__init__() '.upper() + 'main() <No ' + s + '-Section> ' + str(e)) # creating the configurator config = Configurator(settings=settings, authentication_policy=authn_policy, authorization_policy=authz_policy, root_factory='dbas.security.RootFactory', session_factory=session_factory) config.add_translation_dirs( 'dbas:locale', 'admin:locale') # add this before the locale negotiator config.set_default_csrf_options(require_csrf=True) # Include apps config.include('api', route_prefix='/api') config.include('api.v2', route_prefix='/api/v2') config.include('graph', route_prefix='/graph') config.include('admin', route_prefix='/admin') config.include('websocket', route_prefix='/websocket') # more includes are in the config config.include('pyramid_chameleon') config.include('pyramid_mailer') config.include('pyramid_tm') config.add_static_view(name='static', path='dbas:static/', cache_max_age=3600) config.add_static_view(name='websocket', path='websocket:static/', cache_max_age=3600) config.add_static_view(name='admin', path='admin:static/', cache_max_age=3600) config.add_cache_buster( 'static', QueryStringConstantCacheBuster(str(int(time.time())))) config.add_cache_buster( 'admin:static/', QueryStringConstantCacheBuster(str(int(time.time())))) config.add_cache_buster( 'websocket:static/', QueryStringConstantCacheBuster(str(int(time.time())))) # adding main routes config.add_route('main_page', '/') config.add_route('main_settings', '/settings') config.add_route('main_notification', '/notifications') config.add_route('main_news', '/news') config.add_route('main_imprint', '/imprint') config.add_route('main_privacy', '/privacy_policy') config.add_route('main_rss', '/rss') config.add_route('main_faq', '/faq') config.add_route('main_docs', '/docs') config.add_route('main_experiment', '/fieldexperiment') config.add_route('main_discussions_overview', '/mydiscussions') config.add_route('main_user', '/user/{uid:\d+}') config.add_route('main_graphiql', '/graphiql') config.add_route('main_api', '/api') # ajax for navigation logic, administration, settings and editing/viewing log config.add_route('user_login', '{url:.*}user_login') config.add_route('user_login_oauth', '{url:.*}user_login_oauth') config.add_route('user_logout', '{url:.*}user_logout') config.add_route('user_delete', '{url:.*}user_delete') config.add_route('set_new_start_argument', '{url:.*}set_new_start_argument') config.add_route('set_new_start_premise', '{url:.*}set_new_start_premise') config.add_route('set_new_premises_for_argument', '/{url:.*}set_new_premises_for_argument') config.add_route('set_correction_of_statement', '/{url:.*}set_correction_of_statement') config.add_route('set_new_issue', '/{url:.*}set_new_issue') config.add_route('get_logfile_for_statements', '/{url:.*}get_logfile_for_statements') config.add_route('get_shortened_url', '/{url:.*}get_shortened_url') config.add_route('user_registration', '/{url:.*}user_registration') config.add_route('user_password_request', '/{url:.*}user_password_request') config.add_route('fuzzy_search', '/{url:.*}fuzzy_search') config.add_route('fuzzy_nickname_search', '/{url:.*}fuzzy_nickname_search') config.add_route('switch_language', '{url:.*}switch_language{params:.*}') config.add_route('send_notification', '{url:.*}send_notification') config.add_route('get_infos_about_argument', '/{url:.*}get_infos_about_argument') config.add_route('get_user_with_same_opinion', '/{url:.*}get_user_with_same_opinion') config.add_route('get_public_user_data', '/{url:.*}get_public_user_data') config.add_route('get_user_history', 'get_user_history') config.add_route('get_all_edits', 'get_all_edits') config.add_route('get_all_posted_statements', 'get_all_posted_statements') config.add_route('get_all_argument_clicks', 'get_all_argument_clicks') config.add_route('get_all_statement_clicks', 'get_all_statement_clicks') config.add_route('get_all_marked_arguments', 'get_all_marked_arguments') config.add_route('get_all_marked_statements', 'get_all_marked_statements') config.add_route('set_user_setting', 'set_user_setting') config.add_route('set_user_language', 'set_user_language') config.add_route('delete_user_history', 'delete_user_history') config.add_route('delete_statistics', 'delete_statistics') config.add_route('get_news', 'get_news') config.add_route('send_news', 'send_news') config.add_route('notifications_read', 'notifications_read') config.add_route('notifications_delete', 'notifications_delete') config.add_route('get_arguments_by_statement_uid', 'get_arguments_by_statement/{statement_id:\d+}') config.add_route('flag_argument_or_statement', '{url:.*}flag_argument_or_statement') config.add_route('split_or_merge_statement', '{url:.*}split_or_merge_statement') config.add_route('split_or_merge_premisegroup', '{url:.*}split_or_merge_premisegroup') config.add_route('review_delete_argument', '{url:.*}review_delete_argument') config.add_route('review_optimization_argument', '{url:.*}review_optimization_argument') config.add_route('review_duplicate_statement', '{url:.*}review_duplicate_statement') config.add_route('review_edit_argument', '{url:.*}review_edit_argument') config.add_route('review_splitted_premisegroup', '{url:.*}review_splitted_premisegroup') config.add_route('review_merged_premisegroup', '{url:.*}review_merged_premisegroup') config.add_route('undo_review', '{url:.*}undo_review') config.add_route('cancel_review', '{url:.*}cancel_review') config.add_route('review_lock', '{url:.*}review_lock') config.add_route('revoke_statement_content', '{url:.*}revoke_statement_content') config.add_route('revoke_argument_content', '{url:.*}revoke_argument_content') config.add_route('get_references', '{url:.*}get_references') config.add_route('set_references', '{url:.*}set_references') config.add_route('set_seen_statements', '{url:.*}set_seen_statements') config.add_route('mark_statement_or_argument', '{url:.*}mark_statement_or_argument') config.add_route('set_discussion_properties', '{url:.*}set_discussion_properties') # logic at the end, otherwise the * pattern will do shit config.add_route( 'discussion_support', '/discuss/{slug}/support/{arg_id_user:\d+}/{arg_id_sys:\d+}') config.add_route( 'discussion_reaction', '/discuss/{slug}/reaction/{arg_id_user:\d+}/{relation}/{arg_id_sys:\d+}' ) config.add_route('discussion_dontknow_argument', '/discuss/{slug}/justify/{argument_id:\d+}/dontknow') config.add_route('discussion_justify_statement', '/discuss/{slug}/justify/{statement_id:\d+}/{attitude}') config.add_route( 'discussion_justify_argument', '/discuss/{slug}/justify/{argument_id:\d+}/{attitude}/{relation}') config.add_route('discussion_attitude', '/discuss/{slug}/attitude/{statement_id:\d+}') config.add_route( 'discussion_choose', '/discuss/{slug}/choose/{is_argument}/{is_supportive}/{id:\d+}*pgroup_ids' ) config.add_route('discussion_jump', '/discuss/{slug}/jump/{argument_id:\d+}') config.add_route('discussion_finish', '/discuss/{slug}/finish/{argument_id:\d+}') config.add_route('discussion_exit', '/discuss/exit') config.add_route('discussion_start', '/discuss') config.add_route('discussion_start_with_slash', '/discuss/') config.add_route('discussion_init_with_slug', '/discuss/{slug}') # review section config.add_route('review_index', '/review') config.add_route('review_reputation', '/review/reputation') config.add_route('review_history', '/review/history') config.add_route('review_ongoing', '/review/ongoing') config.add_route('review_content', '/review/{queue}') config.scan() __write_rss_feeds() return config.make_wsgi_app()