Bryan C. Andregg writes:
passwdGetUser(username=_.SecurityGetUser)
passwdGetUser takes two optional arguments "username" and "userid", ... When called like above,
passwdGetUser(username=_.SecurityGetUser)
I found that some times this wouldn't return anything. Investigation turned up that since "userid" is set in the outer iteration it gets passed to passwdGetUser even though it's not explicitly in the statement. I solve this problem by calling,
passwdGetUser(username=_.SecurityGetUser, userid='')
To me, this is non-obvious and I'm wondering why this is happening, and if it's meant to. What Zope version do you use?
In my Zope CVS (from end of January 2002), I still have: def __call__(self, REQUEST=None, __ick__=None, src__=0, test__=0, **kw): .... if REQUEST is None: if kw: REQUEST=kw else: if hasattr(self, 'REQUEST'): REQUEST=self.REQUEST else: REQUEST={} This means, that you do not get arguments from "REQUEST" when you pass any keyword parameters (other than "__ick__", "src__", "test__" or "REQUEST"). You never get arguments from the DTML namespace. But, you may still get arguments from acquisition (even when you pass keyword parameters). Dieter