def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(root_factory=Root, settings=settings) config.add_static_view('static', 'pyramid_registration:static') backend_factory = settings.get('pyramid_registration.backend_factory', 'pyramid_registration.mongodb.MongoDBRegistrationBackend') backend_factory = config.maybe_dotted(backend_factory) backend = backend_factory(settings, config) # Seems standard to keep "Registration" and "Login" separate, although # with external auth providers (e.g. Facebook) this isn't stricly necessary. # "Registration" is to create a new account. # "Login" is to exchange some credentials for a valid access token config.add_route('facebook_registration', '/registration/facebook', view=facebook_registration, factory=backend) config.add_route('facebook_login', '/login/facebook', view=facebook_login, factory=backend) config.add_route('simple_registration_post', '/registration/simple', view=simple_registration_post, factory=backend, renderer="pyramid_registration:templates/simple_reg.mak", request_method="POST") config.add_route('simple_registration_get', '/registration/simple', view=simple_registration_get, factory=backend, renderer="pyramid_registration:templates/simple_reg.mak", request_method="GET") config.add_route('simple_login_post', '/login/simple', view=simple_login_post, factory=backend, request_method="POST") config.add_route('simple_login_get', '/login/simple', view=simple_login_get, factory=backend, request_method="GET") # XXX _set_authentication_policy will be made public as # set_authentication_policy soon. config._set_authentication_policy(PyramidRegistrationAuthenticationPolicy(backend)) return config.make_wsgi_app()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(root_factory=Root, settings=settings) config.add_static_view('static', 'pyramid_registration:static') backend_factory = settings.get( 'pyramid_registration.backend_factory', 'pyramid_registration.mongodb.MongoDBRegistrationBackend') backend_factory = config.maybe_dotted(backend_factory) backend = backend_factory(settings, config) # Seems standard to keep "Registration" and "Login" separate, although # with external auth providers (e.g. Facebook) this isn't stricly necessary. # "Registration" is to create a new account. # "Login" is to exchange some credentials for a valid access token config.add_route('facebook_registration', '/registration/facebook', view=facebook_registration, factory=backend) config.add_route('facebook_login', '/login/facebook', view=facebook_login, factory=backend) config.add_route('simple_registration_post', '/registration/simple', view=simple_registration_post, factory=backend, renderer="pyramid_registration:templates/simple_reg.mak", request_method="POST") config.add_route('simple_registration_get', '/registration/simple', view=simple_registration_get, factory=backend, renderer="pyramid_registration:templates/simple_reg.mak", request_method="GET") config.add_route('simple_login_post', '/login/simple', view=simple_login_post, factory=backend, request_method="POST") config.add_route('simple_login_get', '/login/simple', view=simple_login_get, factory=backend, request_method="GET") # XXX _set_authentication_policy will be made public as # set_authentication_policy soon. config._set_authentication_policy( PyramidRegistrationAuthenticationPolicy(backend)) return config.make_wsgi_app()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ settings['mail.port'] = settings.get('mail_port', None) and int(settings['mail.port']) or 25 globalreg = getGlobalSiteManager() set_cache_regions_from_settings(settings) config = Configurator(registry=globalreg) config.include('pyramid_zcml') config.load_zcml('workflow.zcml') config.add_translation_dirs('penelope.core:locale') from penelope.core.views import PORRequest config.setup_registry(settings=settings, request_factory=PORRequest, root_factory='penelope.core.views.DefaultContext') # por security from penelope.core import security authentication_policy = RepozeWho1AuthenticationPolicy(identifier_name="auth_tkt",callback=security.rolefinder) config._set_authentication_policy(authentication_policy) authorization_policy = ACLAuthorizationPolicy() config._set_authorization_policy(authorization_policy) config.scan('penelope.core.security.views') config.include('penelope.core.security.openid2') config.include('velruse.store.memstore') config.add_view('penelope.core.security.views.forbidden', renderer='skin', context="pyramid.httpexceptions.HTTPForbidden") #mailier config.include('pyramid_mailer') # penelope.core.models's configuration config.include('penelope.core.models') import penelope.core.events; penelope.core.events import penelope.core.breadcrumbs; penelope.core.breadcrumbs import penelope.core.sidebar; penelope.core.sidebar session_factory = session_factory_from_settings(settings) config.set_session_factory(session_factory) config.add_static_view('static', 'penelope.core:static') config.scan('penelope.core.views') config.add_route('socketio', 'socket.io/*remaining') config.scan('penelope.core.socketspace') config.add_route('tp', '/tp/*traverse', factory='penelope.core.tp.TPContext') config.scan('penelope.core.tp') config.scan('penelope.core.smartadd') config.scan('penelope.core.backlog') config.add_route('administrator', '/manage', factory='penelope.core.manage.ManageContext') config.add_route('manage_svn_authz', '/manage/svn_authz', factory='penelope.core.manage.ManageContext') config.add_route('manage_costs', '/manage/costs', factory='penelope.core.manage.ManageContext') config.scan('penelope.core.manage') config.add_route('search', '/search') config.scan('penelope.core.search') config.add_route('reports', '/reports/*traverse', factory='penelope.core.reports.ReportContext') config.scan('penelope.core.reports') config.add_renderer(name='xls_report', factory='penelope.core.renderers.XLSReportRenderer') config.add_renderer(name='csv_report', factory='penelope.core.renderers.CSVReportRenderer') config.include('pyramid_rpc.jsonrpc') config.add_jsonrpc_endpoint('DashboardAPI', '/apis/json/dashboard') config.scan('penelope.core.api') config.add_renderer('skin', renderer_factory) config.include('pyramid_skins') config.register_path("penelope.core:skins", discovery=DISCOVERY) # penelope.core.gdata configuration config.include('penelope.core.gdata') # pyramid_formalchemy's configuration config.include('pyramid_formalchemy') config.include('fa.bootstrap') config.include('deform_bootstrap') config.formalchemy_admin('admin', package='penelope.core', factory='penelope.core.forms.CrudModels', models='penelope.core.models', view='penelope.core.forms.ModelView', session_factory='penelope.core.models.DBSession') config.add_view(context='pyramid_formalchemy.resources.ModelListing', renderer='fa.bootstrap:templates/admin/new.pt', request_method='POST', route_name='admin', request_type='penelope.core.interfaces.IPorRequest', view='penelope.core.forms.security_create') config.add_static_view('deform_static', 'deform:static') config.add_route('navbar', '/navbar') config.add_route('favicon', '/favicon.ico') config.add_route('inbound_email', '/inbound_email') config.scan('penelope.core.notifications') from penelope.core.forms import include_forms include_forms(config) return config.make_wsgi_app()