On Tue, 29 Nov 2005 17:26:32 +0000, Phil Mayers <[EMAIL PROTECTED]> wrote:

[snip]

class MultiPortal(Portal):
  def login(self, credlist):
    for c in self.checkers:
      # All or a subset...
      if c.canHandle(credlist):
        return c.login(credlist)
    for c in self.checkers:
      c.maybeChallenge(credlist)

...which starts to look very different from cred as-is

I haven't had time to catch up on this thread, but I wanted to point out that 
it is pretty much always wrong to subclass Portal.  If you ever find yourself 
doing this, you have found a real case cred does not support or (more likely, 
and I believe this is case here) you not succeeded in fitting whatever 
authentication scheme is at hand into cred.

Changing the signature of portal.login() in this manner almost entirely defeats 
the purpose of cred, because it destroys the general nature of the API.  I 
cannot use a protocol implemented against the above MultiPortal without having 
specific knowledge as to this implementation detail, nor can I re-use any 
existing portal which my application already goes to the trouble to create with 
it.  This is a bad thing.

Jean-Paul

_______________________________________________
Twisted-web mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web

Reply via email to