[evolvis-commits] r11730: KikoV: ↵ - added support for SVN AUTHZ module?==?UTF-8?Q?↵
mirabilos at evolvis.org
mirabilos at evolvis.org
Thu Feb 24 18:23:19 CET 2011
Author: mirabilos
Date: 2011-02-24 18:23:19 +0100 (Thu, 24 Feb 2011)
New Revision: 11730
Modified:
trunk/gforge_base/evolvisforge-5.1/gforge-plugin-scmsvn/cronjobs/create_svn.php
Log:
KikoV:
- added support for SVN AUTHZ module
Modified: trunk/gforge_base/evolvisforge-5.1/gforge-plugin-scmsvn/cronjobs/create_svn.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge-plugin-scmsvn/cronjobs/create_svn.php 2011-02-24 17:23:18 UTC (rev 11729)
+++ trunk/gforge_base/evolvisforge-5.1/gforge-plugin-scmsvn/cronjobs/create_svn.php 2011-02-24 17:23:19 UTC (rev 11730)
@@ -33,6 +33,9 @@
//$repos_type = ' --fs-type fsfs ';
$repos_type = '';
+//the name of the access_file
+$access_file = "/opt/gforge/svn_access.conf";
+$password_file = "/opt/gforge/svn_password.conf";
/*
This script create the gforge dav/svn/docman repositories
@@ -84,6 +87,9 @@
passthru ("mkdir $svn");
}
+// The content of the access file used by svn authz apache2 module
+$access_file_content = "";
+
while ( $row =& db_fetch_array($res) ) {
if ($one_repository) {
if ($first_letter) {
@@ -124,12 +130,61 @@
if ($project->usesPlugin('svntracker')) {
check_svn_tracker($row["unix_group_name"], $svn."/".$row["unix_group_name"]);
}
- }
+ }
+ $access_file_content .= add2AccessFile($row["group_id"]);
$cmd = 'chown -R '.$file_owner.' '.$svn;
passthru ($cmd);
}
}
+writeAccessFile($access_file, $access_file_content);
+writePasswordFile($password_file );
+
+function add2AccessFile($group_id)
+{
+ $result = "";
+ $project = &group_get_object($group_id);
+ $result = "[". $project->getUnixName(). ":]\n";
+ $users= &$project->getMembers();
+ foreach($users as $user ) {
+ $perm = &$project->getPermission($user);
+ if ($perm->is_admin || $perm->is_site_admin || $perm->isCVSWriter() ) {
+ $result.= $user->getUnixName() . "= rw\n";
+ } else if ( $perm->isCVSReader() ) {
+ $result.= $user->getUnixName() . "= r\n";
+ }
+ }
+ $result.="\n";
+ return $result;
+}
+
+function writeAccessFile($fileName, $access_file_content)
+{
+ $myFile= fopen( $fileName, "w" );
+ fwrite ( $myFile, $access_file_content );
+ fclose($myFile);
+}
+
+function writePasswordFile($fileName )
+{
+ $res = db_query("SELECT * FROM users");
+ $output = "";
+ if (!$res) {
+ $err .= "Error! Database Query Failed: ".db_error();
+ echo $err;
+ cron_entry(21,$err);
+ exit;
+ }
+
+ while ( $row =& db_fetch_array($res) ) {
+ if (!empty($row["unix_pw"]))
+ $output .= $row["user_name"].":".$row["unix_pw"]."\n";
+ }
+ $myFile = fopen( $fileName, "w" );
+ fwrite ( $myFile, $output );
+ fclose($myFile);
+}
+
function check_svn_tracker($project, $repos) {
$contents = @file_get_contents($repos."/hooks/post-commit");
More information about the evolvis-commits
mailing list