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