You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
207 lines
6.5 KiB
207 lines
6.5 KiB
3 years ago
|
<?php
|
||
|
|
||
|
/**
|
||
|
* 不提供修改svn用户名称的方法 因为从svn的机制来看 这是不合理的 一个准确唯一不变的用户对应svn仓库所有的历史记录是非常有必要的
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* 所有的行中以#开头或包含#的为无效行
|
||
|
* 以[users]开头且仅包含[users]的所在行为开始行
|
||
|
* 在开始行之后且以[*]开头的行为结束行
|
||
|
* 开始行与结束行之间的去除无效行剩下的行为有效行
|
||
|
* 有效行中内容不符合 user=pass 的标识为无效行
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* 获取svn所有用户列表
|
||
|
*
|
||
|
* 0 文件格式错误 文件中不存在[users]标识
|
||
|
* null 空的用户列表
|
||
|
* array(
|
||
|
* 'user1',
|
||
|
* 'user2'
|
||
|
* )
|
||
|
*/
|
||
|
function FunGetSvnUserList($passwdContent)
|
||
|
{
|
||
|
preg_match_all("/^\[users\][\n+]([\s\S]*)/m", $passwdContent, $passwdContentPreg);
|
||
|
if (array_key_exists(0, $passwdContentPreg[1])) {
|
||
|
if (empty(trim($passwdContentPreg[1][0]))) {
|
||
|
return null;
|
||
|
} else {
|
||
|
preg_match_all("/^([A-Za-z0-9_\s]*[^\s])\s*=\s*([A-Za-z0-9_.@]+)/m", $passwdContentPreg[1][0], $resultPreg);
|
||
|
array_walk($resultPreg[1], 'ArrayValueTrim');
|
||
|
return $resultPreg[1];
|
||
|
}
|
||
|
} else {
|
||
|
return '0';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 获取svn所有用户以及每个用户对应的密码
|
||
|
*
|
||
|
* 0 文件格式错误 文件中不存在[users]标识
|
||
|
* null 空的用户列表
|
||
|
* array(
|
||
|
* //正常数据
|
||
|
* 'user1'=>'pass1',
|
||
|
* 'user2'=>'pass2'
|
||
|
* )
|
||
|
*/
|
||
|
function FunGetSvnUserPassList($passwdContent)
|
||
|
{
|
||
|
preg_match_all("/^\[users\][\n+]([\s\S]*)/m", $passwdContent, $passwdContentPreg);
|
||
|
if (array_key_exists(0, $passwdContentPreg[1])) {
|
||
|
if (empty(trim($passwdContentPreg[1][0]))) {
|
||
|
return null;
|
||
|
} else {
|
||
|
preg_match_all("/^([A-Za-z0-9_\s]*[^\s])\s*=\s*([A-Za-z0-9_.@]+)/m", $passwdContentPreg[1][0], $resultPreg);
|
||
|
array_walk($resultPreg[1], 'ArrayValueTrim');
|
||
|
array_walk($resultPreg[2], 'ArrayValueTrim');
|
||
|
return array_combine($resultPreg[1], $resultPreg[2]);
|
||
|
}
|
||
|
} else {
|
||
|
return '0';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 获取svn某个用户的密码
|
||
|
*
|
||
|
* 0 文件格式错误 文件中不存在[users]标识
|
||
|
* null 空的用户列表
|
||
|
* array(
|
||
|
* //正常数据
|
||
|
* 'user1'=>'pass1',
|
||
|
* 'user2'=>'pass2'
|
||
|
* )
|
||
|
*/
|
||
|
function FunGetPassByUser($passwdContent, $user)
|
||
|
{
|
||
|
preg_match_all("/^\[users\][\n+]([\s\S]*)/m", $passwdContent, $passwdContentPreg);
|
||
|
if (array_key_exists(0, $passwdContentPreg[1])) {
|
||
|
if (empty(trim($passwdContentPreg[1][0]))) {
|
||
|
return null;
|
||
|
} else {
|
||
|
preg_match_all("/^([A-Za-z0-9_\s]*[^\s])\s*=\s*([A-Za-z0-9_.@]+)/m", $passwdContentPreg[1][0], $resultPreg);
|
||
|
array_walk($resultPreg[1], 'ArrayValueTrim');
|
||
|
array_walk($resultPreg[2], 'ArrayValueTrim');
|
||
|
return $resultPreg[2][array_search($user, $resultPreg[1])];
|
||
|
}
|
||
|
} else {
|
||
|
return '0';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 添加svn用户以及对应的密码
|
||
|
*
|
||
|
* 0 文件格式错误 文件中不存在[users]标识
|
||
|
* 1 用户已存在
|
||
|
* string 正常
|
||
|
*/
|
||
|
function FunAddSvnUser($passwdContent, $user, $passwd)
|
||
|
{
|
||
|
preg_match_all("/^\[users\][\n+]([\s\S]*)/m", $passwdContent, $passwdContentPreg);
|
||
|
if (array_key_exists(0, $passwdContentPreg[1])) {
|
||
|
if (empty(trim($passwdContentPreg[1][0]))) {
|
||
|
$userStr = "\n$user=$passwd\n";
|
||
|
return $passwdContent . $userStr;
|
||
|
} else {
|
||
|
preg_match_all("/^([A-Za-z0-9_\s]*[^\s])\s*=\s*([A-Za-z0-9_.@]+)/m", $passwdContentPreg[1][0], $resultPreg);
|
||
|
array_walk($resultPreg[1], 'ArrayValueTrim');
|
||
|
array_walk($resultPreg[2], 'ArrayValueTrim');
|
||
|
if (in_array($user, $resultPreg[1])) {
|
||
|
return '1';
|
||
|
}
|
||
|
$combinArray = array_combine($resultPreg[1], $resultPreg[2]);
|
||
|
$resultStr = "[users]\n";
|
||
|
foreach ($combinArray as $key => $value) {
|
||
|
$resultStr .= "$key=$value\n";
|
||
|
}
|
||
|
$resultStr .= "$user=$passwd\n";
|
||
|
return $resultStr;
|
||
|
}
|
||
|
} else {
|
||
|
return '0';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 删除svn用户
|
||
|
*
|
||
|
* 0 文件格式错误 文件中不存在[users]标识
|
||
|
* 1 用户不存在
|
||
|
* string 正常
|
||
|
*/
|
||
|
function FunDelSvnUserPasswd($passwdContent, $user)
|
||
|
{
|
||
|
preg_match_all("/^\[users\][\n+]([\s\S]*)/m", $passwdContent, $passwdContentPreg);
|
||
|
if (array_key_exists(0, $passwdContentPreg[1])) {
|
||
|
if (empty(trim($passwdContentPreg[1][0]))) {
|
||
|
return '1';
|
||
|
} else {
|
||
|
preg_match_all("/^([A-Za-z0-9_\s]*[^\s])\s*=\s*([A-Za-z0-9_.@]+)/m", $passwdContentPreg[1][0], $resultPreg);
|
||
|
array_walk($resultPreg[1], 'ArrayValueTrim');
|
||
|
array_walk($resultPreg[2], 'ArrayValueTrim');
|
||
|
if (in_array($user, $resultPreg[1])) {
|
||
|
$combinArray = array_combine($resultPreg[1], $resultPreg[2]);
|
||
|
$resultStr = "[users]\n";
|
||
|
foreach ($combinArray as $key => $value) {
|
||
|
if ($key == $user) {
|
||
|
continue;
|
||
|
}
|
||
|
$resultStr .= "$key=$value\n";
|
||
|
}
|
||
|
return $resultStr;
|
||
|
}
|
||
|
return '1';
|
||
|
}
|
||
|
} else {
|
||
|
return '0';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 修改密码文件中的用户名
|
||
|
*/
|
||
|
function FunUpdSvnUserPasswd($passwdContent, $oldUserName, $newUserName)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 修改svn用户的密码
|
||
|
*
|
||
|
* 0 文件格式错误 文件中不存在[users]标识
|
||
|
* 1 用户不存在
|
||
|
* string 正常
|
||
|
*/
|
||
|
function FunUpdSvnUserPass($passwdContent, $user, $passwd)
|
||
|
{
|
||
|
preg_match_all("/^\[users\][\n+]([\s\S]*)/m", $passwdContent, $passwdContentPreg);
|
||
|
if (array_key_exists(0, $passwdContentPreg[1])) {
|
||
|
if (empty(trim($passwdContentPreg[1][0]))) {
|
||
|
return '1';
|
||
|
} else {
|
||
|
preg_match_all("/^([A-Za-z0-9_\s]*[^\s])\s*=\s*([A-Za-z0-9_.@]+)/m", $passwdContentPreg[1][0], $resultPreg);
|
||
|
array_walk($resultPreg[1], 'ArrayValueTrim');
|
||
|
array_walk($resultPreg[2], 'ArrayValueTrim');
|
||
|
if (in_array($user, $resultPreg[1])) {
|
||
|
$combinArray = array_combine($resultPreg[1], $resultPreg[2]);
|
||
|
$resultStr = "[users]\n";
|
||
|
foreach ($combinArray as $key => $value) {
|
||
|
if ($key == $user) {
|
||
|
$value = $passwd;
|
||
|
}
|
||
|
$resultStr .= "$key=$value\n";
|
||
|
}
|
||
|
return $resultStr;
|
||
|
}
|
||
|
return '1';
|
||
|
}
|
||
|
} else {
|
||
|
return '0';
|
||
|
}
|
||
|
}
|