Marc O. Sandlus writes:
How can I authenticate a user (i.e. get his name and roles) from within an external (Python) method? I read the mailing list in digest mode. This means, I already know your grievances with Zope expressed in later messages. And this allows me to make a sarcastic note:
The Zope documentation for External Methods seems to be comparable in clarity with that of your question. After this bit of sarcasm, I can get helpful again. A later message tells that you want the user/role information to make a permission check. Zope can make simple checks for you automatically. You simple associate the External Method's "View" permission with the roles that should be allowed to call the method. You can also use: from AccessControl import getSecurityManager user= getSecurityManager().getUser() and then use "user.getUserName()" and "user.has_role" to get the user name and role information. A later message tells that you found out that "self" and "REQUEST" is passed into an External Method. In fact, any argument in the External Method's argument list is passed in provided it is available in the request context. You may read the "Web Publishing" section of <http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html> to find out more. Finally, the section "Site building objects" in the above reference tells a bit about the calling magic of External Methods. Just to avoid you another day of frustration... Dieter