[Twisted-web] Newov Login Forward
Andy Gayton
andy at thecablelounge.com
Tue Feb 22 05:05:20 MST 2005
noema wrote:
> I think an answer to the following issue could be useful for many
> people: (1) When I have a login page resource like the one listed here
> how can I return another page than the root one? (2) How can I return a
> certain page resource depending on the username?
G'day Noema,
Have a look a guarded.py in the examples directory. Guard uses the
realm you've associated with your site's portal to determine which
object represents your site's root page.
Until the user logs in, guard requests an avatar for the
checkers.ANONYMOUS user - so your realm usually returns a login page for
this user. When a user successfully authenticates themselves with
guard, guard will ask your realm for an object that matches the user's
userid.
So for 1/ - arrange for your sites realm to return the new root page
once you have an authenticated userid
for 2/ I'd approach this using components and adaptors. Represent each
user type as an implementation of an interface for that user type - for
example you might have IUser and IUserAdmin. Then create adaptors from
the IUser interface to nevow.IResource and IUserAdmin to nevow.IResource.
Your realm can then simply return a user object which is either an
implementation of IUser or IUserAdmin - and the correct page will be drawn.
These links might be useful:
http://twistedmatrix.com/documents/current/howto/cred
http://twistedmatrix.com/documents/current/howto/components
Hoping I haven't missed what you've actually asked :)
Andy.
More information about the Twisted-web
mailing list