Forum OpenACS Q&A: Project Manager: Subsite Aware ?
I have a subsite for each of my clients. Obviously, the clients should only have access to their respective client projects.
How do I do this? Is it possible to just have one PM instance with all the clients projects but assign certain projects only to certain clients (and they will only see the projects they are assigned to in the overview) ?
How do others deal with this?
I'm no expert but it seems that the project-manager is based on the content-repository. I could not find any 'package_id' parameter in any of the pm_* tables.
One possible way may be to subtype the cr_items table with a 'pm_item' object_type and have a 'package_id' item parameter much like cr_folders.
This would allow multiple packages and each project to map to a particular package. Also a package may have multiple projects.
would you create an a file storage package in the main instance with a folder for all projects and give all subsite project manager packages each a root folder under this root folder and under each of these folders give them folder for each project.?
I guess thats a little confusing.
I am planning to do some work in the coming weeks to address a similar requirement. What I plan to do though is this:
1) Modify the code to support permissions control at project and task level.
2) Progress the user interface to support sub-projects and 'aggregate tasks'.
The end result would be that groups/parties could be used to conveniently control who can see what. A master Project Manager instance on the Main Subsite could share projects with a subsite mounted instance of PM (and vice versa) based on permissions and group membership.
I also think Dave's suggestion is a good one - I think that it should be an option when mounting an instance of PM whether or not you want its projects to be completely insulated from other instances (content folders used where the answer is yes) or able to share between instances.
Either way, let me know how it goes, looking forward to it.
One is making project-manager subsite aware. I think Logger does a fairly good job with this, and can be looked at as an example. Logger allows you to determine what each subsite sees. I wouldn't just copy Logger's implementation, but it's worth looking at.
The second issue is permissions controls. Currently, project manager allows you to see and manipulate just about everything if you have permissions on the package_id.
Both of these are great improvements to make, but they must be implemented carefully.
I had presumed this to be that a module respects the groups and permissions associated with the subsite node upon which it was mounted. I assumed that this was simply a matter of ensuring that the necessary permissions inheritance was correct.
What else in involved in conferring subsite awareness?
The term subsite aware was probably originally used when folks though subsites would be used to group package instances together. So that each subsite would host one instance of project manager, and each project manager instance would only should those objects created under that instance.
So, to build in awareness of package instance the main objects in a package under OpenACS 5.1 should store a package_id or other identifier of which package instance they were created under.