Tim Hicks wrote:
# 'self' is the plugin converter object folder = self.restrictedTraverse(path_to_folder) #Authenticate with the same acl_users as the original uploader acl_users = folder.acl_users user = acl_users.authenticate(qfile.user, qfile.passw, request={}) user = user.__of__(acl_users) newSecurityManager(None, user)
Urm, I don't know whether that'll work. If it doesn't error, you may experience weird security stuff happening later on...
Urm, hang on... ;-)
Do you have a better/correct way <crosses fingers and toes ;-)>?
Debug log output reveals the following:
2002-08-20 00:10:41,871 DEBUG dir(self.aq_parent) => ['_objects', '_pluginConverters', 'asyncSuccess', 'cleanId', 'currentConverter', 'handleFiles', 'id', 'makeZPT', 'nullUpload', 'title', 'uploadBox', 'uploadBoxAsync', 'uploadDispatch', 'uploadDispatchAsync'] 2002-08-20 00:10:41,871 DEBUG self.aq_parent.__roles__ => ('Anonymous', 'Manager', 'sysUser', 'zlaveUser') 2002-08-20 00:10:41,901 DEBUG dir(user) => ['__', 'domains', 'name', 'roles'] 2002-08-20 00:10:41,901 DEBUG user.roles => ['Manager']
And that helps me how? ;-)
Ah, good point some explanation in order perhaps ;-)! In the first line, I was just trying to show that I am successfully acquiring the ZOffice instance that is the parent of the plugin converter. The second line shows the __roles__ on the ZOffice object. I included this as ZopeSecurityPolicy.py seems to try to match this with the roles of the user. Hence, the last line is showing that the logged-in user does indeed have the 'Manager' role. I'll leave you to decide if that helps you ;-). cheers tim