On Tue, 23 Sep 2003 07:16 am, Larry Jones wrote: > Larry Lords writes: > > In order to refactor the build we need to limit the access to the > > build.xml file to a limited group. I have looked through the > > documentation, but still not sure what to do to limit the access? > > CVS cannot limit access to a single file, only to a directory. >
Access to read it, or access to commit it? If you mean to commit, if you are willing to write a perl script you can (: I limit on a repository basis, but the following code could easily be modified to do such a thing. You would need to add something like if($repository eq x and $f eq "build.xml") in the very last loop of the following script: #!/usr/local/bin/perl # $Id$ # # Program: commitcheck.pl # Author: Jacob Rhoden # Email: [EMAIL PROTECTED] # # This script validates a file before checking. It does the following: # - Check you are allowed to commit to a project # - Check perl scripts compile properly (removed) # # Place this file in the CVSROOT directory as 'commitcheck.pl'. To make it # work, you need to add to the CVSROOT/commitinfo file something like: # # ALL $CVSROOT/CVSROOT/commitcheck.pl # $origrepository = shift(@ARGV); @files = @ARGV; # Wori out the the repositiory directory $envcvsroot = $ENV{'CVSROOT'}; open(REPO, "<CVS/Repository"); $repository = <REPO>; chop($repository); close(REPO); $repository =~ s:^$envcvsroot/::; $project=$repository; $project=~s/^(.*?)\/.*/$1/; # Iterate over the body of the message collecting information. # $| = 1; print STDERR "\nCommit Check Validation 1.0\n"; print STDERR " files: @files\n"; print STDERR " dest path: $origrepository\n"; print STDERR " repository: $repository\n"; print STDERR " project: $project\n\n"; # Work out the username if($username eq "") { $username = $ENV{"CVS_USER"} || getlogin || (getpwuid($<))[0] || "nobody"; } # Check the user is allowed to checkin to this repository $ok = 0; # We should have a better method of adding # users than insertin if statments. Perhaps # a list/group file if($username eq "jrhoden") { $ok=1; } if($username eq "fawzi") { $ok=1; } if($username eq "melissa") { $ok=1; } if (!$ok) { print STDERR "Permission Denied\n"; print STDERR " $username is not allowed access to $project\n"; print STDERR " If you think you should be allowed to, send mail to\n"; print STDERR " [EMAIL PROTECTED]"; exit 1; } # Do various file type speciffic checks foreach $f (@files) { } exit 0; _______________________________- http://rhoden.id.au/ _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs