Thanks Bob!
Wooow, soon you are reaching your 11.000 post.

)
I'm getting closer to what I want to achieve. This is the latest code:
<?php
//get the user id
$name = $user->get('name');
$ID = $user->get('id');
//create a new resource
$object = $modx->newObject('modDocument');
$object->set('pagetitle', 'ResourceUser-'.$ID);
$object->set('published', '1');
$object->setContent('This will be the content of the new doc.');
$object->set('description', 'I created this doc in a snippet');
$object->set('template', '3');
$object->set('parent', '2');
$object->set('menuindex', '1');
$object->set('publishedby', $ID);
$object->save();
//create a new resourceGroup
$resourceGroup = $modx->newObject('modResourceGroup');
$resourceGroup->set('name','ResourceGroup-'.$ID);
$resourceGroup->save();
//add the resource to it's resourceGroup
$object->joinGroup($resourceGroup);
$object->joinGroup('AllPagesResourceGroup');
//create a new userGroup
$userGroup = $modx->newObject('modUserGroup');
$userGroup->set('name', 'UserGroup-'.$ID);
$userGroup->save();
//add the new user the it's userGroup
$user->joinGroup($userGroup->get('id'),'CustomEditor');
//access
$resourceGroupAccess = $modx->newObject('modAccessResourceGroup');
$resourceGroupAccess->set('target', $resourceGroup->get('id'));
$resourceGroupAccess->set('principal_class', 'modUserGroup');
$resourceGroupAccess->set('principal', $userGroup->get('id'));
$resourceGroupAccess->set('authority', 9);
$resourceGroupAccess->set('policy', 13 ); //
$resourceGroupAccess->set('context_key', 'mgr');
$resourceGroupAccess->save();
$contextAccess = $modx->newObject('modAccessContext');
$contextAccess->set('target', 'mgr');
$contextAccess->set('principal_class', 'modUserGroup');
$contextAccess->set('principal', $userGroup->get('id'));
$contextAccess->set('authority', 9); // CustomEditor
$contextAccess->set('policy', 13 ); // a modified ContentEditor policy
$contextAccess->save();
//the ACL for the web context
$contextAccess = $modx->newObject('modAccessContext');
$contextAccess->set('target', 'web');
$contextAccess->set('principal_class', 'modUserGroup');
$contextAccess->set('principal', $userGroup->get('id'));
$contextAccess->set('authority', 9); // CustomEditor
$contextAccess->set('policy', 13 ); // a modified ContentEditor policy
$contextAccess->save();
I'm still having some problems.
I can't see anything in the Resource Tree when I'm logged as UserX.
I created one ResourceGroup "AllPages" and I assigned the "Adminstrator" Group to it
(minim role: Super User; Acces Policy: Resource; Context: mgr)
The plugin creates automatically ResourceGroups "ResourceGroup-X" for each UserX
(minim role: CustomEditor-9; AccesPolicy: Resource; Context: mgr)
Is there anything I'm missing about ACL?
[ed. note: zoadie last edited this post 14 years, 8 months ago.]