def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ """ Setup the config """ global tim_config tim_config = load_configuration('{TIM_CONFIG}/config.ini') """ Setup the database """ db_url = db.create_url_from_config(tim_config['db']) db.configure_session(db_url) session_factory = pyramid_beaker.session_factory_from_settings(settings) authn_policy = AuthTktAuthenticationPolicy(tim_config['api']['authentication_secret']) authz_policy = ACLAuthorizationPolicy() config = Configurator(settings=settings, authentication_policy=authn_policy, authorization_policy=authz_policy, session_factory=session_factory) config.add_static_view('img', 'timmobilev2:img', cache_max_age=0) config.add_static_view('css', 'timmobilev2:css', cache_max_age=0) config.add_static_view('js', 'timmobilev2:js', cache_max_age=0) config.add_route('index', '/') config.add_route('settings', '/settings') config.add_route('login', '/login') # config.add_route('app', '/{authorname}/') config.add_route('app', '/{authorname}') # twitter oauth config.add_route('twitter', '/oauth/twitter') config.add_route('twitter_callback', '/oauth/twitter/callback') # facebook auth config.add_route('facebook', '/oauth/facebook') config.add_route('facebook_callback', '/oauth/facebook/callback') # linkedin auth config.add_route('linkedin', '/oauth/linkedin') config.add_route('linkedin_callback', '/oauth/linkedin/callback') # google+ auth config.add_route('googleplus', '/oauth/googleplus') config.add_route('googleplus_callback', '/oauth/googleplus/callback') # instagram auth config.add_route('instagram', '/oauth/instagram') config.add_route('instagram_callback', '/oauth/instagram/callback') # flickr auth config.add_route('flickr', '/oauth/flickr') config.add_route('flickr_callback', '/oauth/flickr/callback') # foursquare auth config.add_route('foursquare', '/oauth/foursquare') config.add_route('foursquare_callback', '/oauth/foursquare/callback') # generic oauth config.add_route('oauth', '/oauth/{servicename}') config.add_route('oauth_callback', '/oauth/{servicename}/callback') config.add_route('resource.any', '/{authorname}/asset/{resource}.{ext}') config.scan() return config.make_wsgi_app()
def main(global_config, **settings): """ Setup the config """ global tim_config tim_config = load_configuration('{TIM_CONFIG}/config.ini') # load the oauth configuration settings global oauth_config oauth_config = tim_config['oauth'] """ This function returns a Pyramid WSGI application. """ engine = engine_from_config(settings, 'sqlalchemy.') initialize_sql(engine) authn_policy = AuthTktAuthenticationPolicy('tim_secret', callback=groupfinder, timeout=1800, reissue_time=180, max_age=1800, debug=True) authz_policy = ACLAuthorizationPolicy() session_factory = pyramid_beaker.session_factory_from_settings(settings) config = Configurator(settings=settings, root_factory='timmobile.context.RootFactory', authentication_policy=authn_policy, authorization_policy=authz_policy, session_factory=session_factory) config.add_static_view('static', 'timmobile:static', cache_max_age=0) config.add_static_view('img', 'timmobile:img', cache_max_age=0) config.add_static_view('css', 'timmobile:css', cache_max_age=0) config.add_static_view('js', 'timmobile:js', cache_max_age=0) # define routes # config.add_route('home', '/') config.add_route('login', '/login') config.add_route('logout', '/logout') config.add_route('newlogin', '/newlogin') config.add_route('accounts', '/accounts') config.add_route('account_details', '/accounts/{featurename}') config.add_route('newsfeed', '/newsfeed') config.add_route('timeline', '/{authorname}/timeline') config.add_route('profile', '/{authorname}/profile') config.add_route('followers', '/followers') # # oauth setup paths # # twitter oauth config.add_route('twitter', '/oauth/twitter') config.add_route('twitter_callback', '/oauth/twitter/callback') # facebook auth config.add_route('facebook', '/oauth/facebook') config.add_route('facebook_callback', '/oauth/facebook/callback') # linkedin auth config.add_route('linkedin', '/oauth/linkedin') config.add_route('linkedin_callback', '/oauth/linkedin/callback') # google+ auth config.add_route('googleplus', '/oauth/googleplus') config.add_route('googleplus_callback', '/oauth/googleplus/callback') # instagram auth config.add_route('instagram', '/oauth/instagram') config.add_route('instagram_callback', '/oauth/instagram/callback') # flickr auth config.add_route('flickr', '/oauth/flickr') config.add_route('flickr_callback', '/oauth/flickr/callback') # foursquare auth config.add_route('foursquare', '/oauth/foursquare') config.add_route('foursquare_callback', '/oauth/foursquare/callback') # generic oauth config.add_route('oauth', '/oauth/{featurename}') config.add_route('oauth_callback', '/oauth/{featurename}/callback') config.scan() return config.make_wsgi_app()