I've uploaded a new beta of GUF , which I've fixed the outstanding authentication issues. This has (hopefully temporary) introduced a new limitation where things will stuff up if you create a GUF (using cookie authentication) inside an area already protected with cookie authentcation. I'm fairly certain this problem is also in most other acl_users inplementations that use cookie authentication methods. Now for something wierd: I have a Zope installation that looks like the following: [Root] +- acl_users (UserFolder) +- CS +- acl_users (GenericUserFolder) +- Zen (Protected - just user 'zen' has permissions to it) +- index_html Now - its all working just fine in most situations. Now, I can happily access the URL http://myserver:8080/CS/Zen - login screen pops up, I enter username & password, and I get my index_html page. I can then also go to http://myserver:8080/CS/Zen/manage and see the management screen just dandy. In this case, the manage method populates the left and right frames with the following URL's: http://myserver:8080/CS/Zen/manage_menu http://myserver:8080/CS/Zen/manage_workspace The title is: <TITLE>Zen on http://wombat:8080/Test2/CS/Zen</TITLE> However, If I fire up the browser and go directly to http://myserver:8080/CS/Zen/manage, things start screwing up. I get the authentication screen, enter username & password, ok, and then the manage panes pop up but authentication to these protected resources never happens. The manage method is populating the left and right frames with the following URL's: http://myserver:8080/manage_menu http://myserver:8080/manage_workspace The title is: <TITLE>Zen on http://myserver:8080</TITLE> If you click 'cancel' on the BasicUser authentication dialog box that has popped up, you will end up with unauthentated tracebacks in both panes. However, sharp eyes will notice that the 'back' button is now available on your brower, which is strange since this is the first page we have visited. Clicking 'Back' brings you to a fully functional, correctly authentication management screen. Wierd - something must be sending a dodgy redirect. Which is odd, since it isn't my code as far as I'm aware. I'm at a loss to why this would be happening. Why should the manage method return differently depending on if the browser has previously visited a protected page or not? I can duplicate this on both 2.0.1 and 2.1beta2. I can't duplicate in an area not protected by a GUF, so I assume it is something wrong in my code. Since I don't actually *have* manage, manage_main or manage_menu functions (I'm inheriting from Folder), I'll further assume it is something I've left out that shouldn't have been. Any hints? My forehead hurts. -- ___ // Zen (alias Stuart Bishop) Work: zen@cs.rmit.edu.au // E N Senior Systems Alchemist Play: zen@shangri-la.dropbear.id.au //__ Computer Science, RMIT WWW: http://www.cs.rmit.edu.au/~zen
This note is mostly a feature request. I don't know if these features would fit in with what you are doing or not, but I thought I'd throw them out. Also, I'm hoping someone would explain to me how I might get the functionality I need, since several weeks of part-time fooling around haven't gotten me there yet :) Also, I have a more general question. I'll start with that, for those not into UserFolders: I notice that a lot of products redefine class variables (e.g., GenericUserFolder has isPrincipiaFolderish=1 isAUserFolder=1 ) which are already in the superclass. Is this because: * it's more readable * Python object model forces this * Zope forces it by ignoring the superclass chain (while doing .....)? Now, here are the two User-specific things I've been trying to do: 1) Let new users define themselves on a new user screen (not a Zope management console). I've been hung up on the architectural points of where such a screen should go, how it is to refer to the acl_users folder, and how to set permissions. 2) Have User objects which are subclasses of user, for extra data and functionality. I've been trying to avoid modifying the code in AccessControl/ directly, since that's cheating (and not robust against Zope system changes). I think if you took the class as a variable, or took a factory object as an optional argument to your stuff, it would meet 2) without much trouble. I know many of these questions are elementary. I have spent a fair amount of time RTFMing (such as they are), but I'm still getting a feel for the system, and would welcome some help. Thanks.
participants (2)
-
Ross Boylan -
Stuart 'Zen' Bishop