Nuxeo mailing list archives
[CPS-devel] change the Owner of a member folder and its contents
Santi Camps
scamps at earcon.com
Thu Feb 22 09:56:24 CET 2007
I think the problem is you are passing a member to the changeOwnership
method, when it is expecting a user.
Knowing that user = member.getUser(), try your method using the user
object instead of the member one
Regards
--
Santi Camps
Earcon S.L. - http://www.earcon.com
- http://www.kmkey.com
On 2/22/07, Miguel Sánchez Beato <miguel.sanchez at iavantefundacion.com> wrote:
> Hi all. We're working on a customized CPS 3.4.2 and we want the
> administrator to create users using a customized form (more than 20
> fields). This form (once it has been filled) post the data to a
> customized python script placed in one of our external products (not in
> 'custom' folder), this script has to create the entry in the directory
> 'members' (using some of the fieds of the posted form) and has to create
> the member area (as it is done in the script 'logged_in.py') and some
> special contents inside (curriculum, calendar, diary...).
>
> Everything is going ok, until the member area creation: it creates the
> member folder and its contents, but there are some problems with the
> ownership of them. We have create a method that change the ownership to
> the member that has been created (until now the owner of those resources
> was the administrator, that is, the former creator). this is the code
> (we have make it recursive to change the owner for every content inside
> of the member area):
>
>
> def changeRecursiveOwner(self, object, member):
> """Change the owner of an object and its contents
> @param object: the object which to the owner is going to be
> changed
> @param member: the new owner
> """
> object.changeOwnership(member)
> recObjects = object.objectValues()
> if recObjects:
> for ob in recObjects:
> self.changeRecursiveOwner(ob,member)
> ob.manage_setLocalRoles(member.getId(),['Owner',])
> ob.reindexObjectSecurity()
>
> The owner changes, but it still doesn't seem to work ok: there are some
> resources within the member area that are not accesible for the new
> member, and it raises and error when we try to use the method
> "getOwner()" in an expression like:
>
> ...
> entry = dtool['members'].getEntry(doc.getOwner().getId())
> ...
>
> that is used to create a guard for some of the widgets of the layouts
> that support the new member data (and that have been filled in the
> form).
>
> The error is:
>
> ...
> Module AccessControl.Owned, line 100, in getOwner
> AttributeError: getUserById
> ...
>
> Anybody knows somthing about this behavior?
>
> Thanks a lot!
>
>
> _______________________________________________
> cps-devel mailing list
> http://lists.nuxeo.com/mailman/listinfo/cps-devel
>
This list archive provided by Nuxeo, the
leaders of open source ECM.
Check out the Nuxeo 5 open source,
standards-based ECM project.