Thank you for the code, I will let you know if I have any issues :D
On Tue, Dec 28, 2010 at 10:37 PM, Chris McDonough <[email protected]> wrote:
> Here's some code I use to set up a Mongo connection on the root for each
> request (along with some other stuff):
>
> """
> from pyramid.authentication import AuthTktAuthenticationPolicy
> from pyramid.config import Configurator
> from pyramid.events import subscriber
> from pyramid.events import NewRequest
> from pyramid.security import Allow
> from pyramid.security import Authenticated
> from pyramid.security import authenticated_userid
>
> from pyramid_beaker import session_factory_from_settings
>
> from gridfs import GridFS
> import pymongo
>
> class API(object):
> """ All 'API' objects are used by renderer_globals_factory """
> def __init__(self, context, request):
> self.context = context
> self.request = request
>
> class UserAPI(API):
> @property
> def name(self):
> return authenticated_userid(self.request)
>
>
> def globals_factory(system):
> request, context = system['request'], system['context']
> return {
> 'user':UserAPI(context, request),
> # .. other "API" objects
> }
>
>
> class Root(object):
> __acl__ = ((Allow, Authenticated,
> 'something_only_authenticated_can_do'),)
> def __init__(self, request):
> self.request = request
>
> def main(global_config, **settings):
> authn_policy = AuthTktAuthenticationPolicy('seekriT')
>
> config = Configurator(settings=settings,
> authentication_policy=authn_policy,
> root_factory=Root)
> config.scan('mypackage')
>
> config.add_static_view('static', 'mypackage:static/',
> cache_max_age=86400)
>
> config.registry.mongo_conn = pymongo.Connection(settings['db_uri'])
>
> session_factory = session_factory_from_settings(settings)
> config.set_session_factory(session_factory)
> config.set_renderer_globals_factory(globals_factory)
>
> config.include(add_routes)
>
> return config.make_wsgi_app()
>
> def add_routes(config):
> config.add_route('dashboard', '/')
> # .. other routes ...
>
> @subscriber(NewRequest)
> def add_mongo_db(event):
> reg = event.request.registry
> settings = reg.settings
> db_name = settings['db_name']
> db = reg.mongo_conn[db_name]
> event.request.db = db
> event.request.fs = GridFS(db)
> """
>
> The Mongo database is then available as request.db in every view.
>
> Authentication/authorization is normal Pyramid stuff. The code above
> sets a root object with a single ACL. You can get fancier as necessary.
>
> - C
>
> On Tue, 2010-12-28 at 21:49 -0800, Detectedstealth wrote:
> > Does anyone know of any tutorial or basic details on integrating these
> > two? Need to know basic integration along with Authentication.
> >
> > I don't expect code just pointed into the right direction. Starting my
> > first Pyramid app.
> >
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "pylons-discuss" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<pylons-discuss%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/pylons-discuss?hl=en.
>
>
--
--
Regards,
Bruce Wade
http://ca.linkedin.com/in/brucelwade
http://www.wadecybertech.com
http://www.warplydesigned.com
http://www.fitnessfriendsfinder.com
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/pylons-discuss?hl=en.