Package twisted :: Package web :: Package woven :: Module guard :: Class UsernamePasswordWrapper
[frames | no frames]

Class UsernamePasswordWrapper

Resource --+
           |
          UsernamePasswordWrapper


I bring a twisted.cred Portal to the web. Use me to provide different Resources (usually entire pages) based on a user's authentication details.

A UsernamePasswordWrapper is a Resource, and is usually wrapped in a SessionWrapper before being inserted into the site tree.

The Realm associated with your Portal should be prepared to accept a request for an avatar that implements the twisted.web.resource.IResource interface. This avatar should probably be something like a Woven Page. That is, it should represent a whole web page. Once you return this avatar, requests for it's children do not go through guard.

If you want to determine what unauthenticated users see, make sure your Portal has a checker associated that allows anonymous access. (See twisted.cred.checkers.AllowAnonymousAccess)
Method Summary
  __init__(self, portal, callback, errback)
Constructs a UsernamePasswordWrapper around the given portal.
  _ebFilter(self, f)
  getChild(self, path, request)
Retrieve a 'child' resource from me.
    Inherited from Resource
  delEntity(self, name)
  getChildForRequest(self, request)
  getChildWithDefault(self, path, request)
Retrieve a static or dynamically generated child resource from me.
  getDynamicEntity(self, name, request)
  getStaticEntity(self, name)
  listDynamicEntities(self, request)
  listDynamicNames(self)
  listEntities(self)
  listNames(self)
  listStaticEntities(self)
  listStaticNames(self)
  putChild(self, path, child)
Register a static child.
  reallyPutEntity(self, name, entity)
  render(self, request)
Render a given resource.
  render_HEAD(self, request)
Default handling of HEAD method.

Class Variable Summary
    Inherited from Resource
tuple __implements__ = (<class twisted.web.resource.IResource ...
int isLeaf = 0                                                                     
NoneType server = None                                                                  

Method Details

__init__(self, portal, callback=None, errback=None)
(Constructor)

Constructs a UsernamePasswordWrapper around the given portal.
Parameters:
portal - A cred portal for your web application. The checkers associated with this portal must be able to accept username/password credentials.
           (type=twisted.cred.portal.Portal)
callback - Gets called after a successful login attempt. A resource that redirects to "." will display the avatar resource. If this parameter isn't provided, defaults to a standard Woven "Thank You" page.
           (type=A callable that accepts a Woven model and returns a IResource.)
errback - Gets called after a failed login attempt. If this parameter is not provided, defaults to a the standard Woven form error (i.e. The original form on a page of its own, with errors noted.)
           (type=A callable that accepts a Woven model and returns a IResource.)
Overrides:
twisted.web.resource.Resource.__init__

getChild(self, path, request)

Retrieve a 'child' resource from me.

Implement this to create dynamic resource generation -- resources which are always available may be registered with self.putChild().

This will not be called if the class-level variable 'isLeaf' is set in your subclass; instead, the 'postpath' attribute of the request will be left as a list of the remaining path elements.

For example, the URL /foo/bar/baz will normally be:
 | site.resource.getChild('foo').getChild('bar').getChild('baz').
However, if the resource returned by 'bar' has isLeaf set to true, then the getChild call will never be made on it.
Parameters:
path - a string, describing the child
request - a twisted.web.server.Request specifying meta-information about the request that is being made for this child.
Overrides:
twisted.web.resource.Resource.getChild (inherited documentation)

Generated by Epydoc 2.0 on Sat May 15 20:08:35 2004 http://epydoc.sf.net