[Zope-CMF] problem in setting local roles for newly created object

Bartek Gorny bartek at redpoint.mn.pl
Sat Apr 1 09:16:24 EST 2006

On 4/1/06, Dieter Maurer <dieter at handshake.de> wrote:
> Bartek Gorny wrote at 2006-3-29 11:50 +0200:
> > ...
> >I have a script which creates a new instance of a certain portal_type
> >by a method "constructContent", and then calls manage_setLocalRoles.
> >And I get an exception:
> >
> >Module AccessControl.Role, line 362, in manage_setLocalRoles
> >AttributeError: __hash__
> >
> >and the lines in question are:
> >361        dict=self.__ac_local_roles__ or {}
> >362        dict[userid]=roles
> This means, the "userid" does not have a "__hash__" method
> and especially is not as string. But, it should be a string!

Of course. I did a stupid thing - got a user by getMemberById
function, and then tried to use the object to set a local role,
instead of the object's id. The misleading thing was that when I tried
to print out the 'userid' to a log, it gave the id, with no
information that it is an object. Your comment help me figure it out -


> --
> Dieter

More information about the Zope-CMF mailing list