Post on 12-Jan-2015
description
transcript
Using ]project-open[ to manage SVN / CVS+ACL permission configurationHow to use ]project-open[ as a Web interface to maintain the permission configuration files of the Subversion (SVN) and CVS+ACL source code version control system.
(cc) Except where otherwise noted, content on this slide is licensed under a Creative Commons Attribution 3.0 License
]project-opem[ 2010, ALM / Frank Bergmann / 2
The Problem
Manually maintaining the permission configuration of SVN or CVS+ACL is error prone and requires system administrator privileges
Permission management of individual SVN/CVS “projects” should be delegated to the project owner.
]project-opem[ 2010, ALM / Frank Bergmann / 3
The Solution
1. Use ]project-open[ as a Web-front-end to manage the configuration.
2. Model the SVN/CVS projects in ]po[ as configuration items.
3. Assign the SVN/CVS project owners as administrators to the ]po[ configuration items representing the CVS/CVS projects
4. Use a Perl script (or any other language) to generate the SVN/CVS configuration files based on the ]po[ configuration. The Perl script can use the ]po[ REST interface to query a remote ]po[ server
]project-opem[ 2010, ALM / Frank Bergmann / 4
The Solution
On the ]project-open[ server, a REST interface exposes the SVN/CVS configuration as a Web service
On the SVN/CVS server, the Perl script retrieves the configuration and writes the configuration files for the SVN/CVS daemon
]project-open[ Server
AOLserver
PostgreSQLDatabase
]po[ REST API
]po[ Libraries
OpenACS Libs
SVN / CVS Server
CVSdProcessConfig
Files
Perl ScriptRetrieves configuration via REST and writes config files
RE
ST
]project-opem[ 2010, ALM / Frank Bergmann / 5
Group Management for CVS + ACL
CVS+ACL (cvsacl.sourceforge.net/) is a patch for CVS that adds ACLs (Access Control Lists) permissions to CVS
A “CVS ACL Group Admin” portlet (at the right) is shown in the ]po[ UserViewPage. It allows to manage the user’s CVS group membership.
The CVS ACS portlet is integrated into the ]po[ permission system, allowing to delegate permissions.
A Perl client uses the ]po[ REST Interface to retrieve the group information and writes the CVSROOT/group configuration file
The example at the right shows the resulting “group” file for CVS+ACL generated by the Perl client.
]project-opem[ 2010, ALM / Frank Bergmann / 6
Installing Group Management for CVS + ACL
Make sure you are running ]po[ 3.5 or higher Retrieve the package “intranet-cvs-integration”
from the ]po[ CVS server (=> see www.project-open.org for details)
Install the package using /acs-admin/apm/ -> Install packages
You will see the CVS Group Admin portlet in every user’s page
Go to the Perl directory ~/packages/intranet-rest/perl-client-examples/ and run “perl generate-cvs-acl-group-conf.perl”
For questions and issues please go to www.sourceforge.net/projects/project-open/ => Open Discussion or contact info@project-open.com for support services.
]project-opem[ 2010, ALM / Frank Bergmann / 7
Thank You