$group * * @var string */ protected $REG_AUTHZ_GROUP_PRI_REPS = "/^\[(.*?):(.*?)\][A-za-z0-9_=@*\s]*?@%s[\s]*=[\s]*([rw]+)$\n/m"; /** * 匹配authz配置文件中某个用户有权限的仓库列表 * * %s => $user * * @var string */ protected $REG_AUTHZ_USER_PRI_REPS = "/^\[(.*?):(.*?)\][A-za-z0-9_=@*\s]*?%s[\s]*=[\s]*([rw]+)$\n/m"; /** * 匹配authz配置文件中所有用户有权限的仓库列表 * * *=r、*=rw * * @var string */ protected $REG_AUTHZ_ALL_HAVE_PRI_REPS = "/^\[(.*?):(.*?)\][A-za-z0-9_=@*\s]*?\*[\s]*=[\s]*([rw]+)$\n/m"; /** * 匹配authz配置文件中所有用户无权限的仓库列表 * * *= * * @var string */ protected $REG_AUTHZ_ALL_NO_PRI_REPS = "/^\[(.*?):(.*?)\][A-za-z0-9_=@*\s]*?\*[\s]*=[\s]*$\n/m"; /** * 匹配通过魔力符号配置的相关信息 * * 包含 ~ $等前缀 */ //todo /** * 匹配authz配置文件中指定仓库的指定路径 包含内容 * * [rep1:/floder] * u1=r * @g1=rw * * %s => $repName * %s => $repPath * * @var string */ protected $REG_AUTHZ_REP_SPECIAL_PATH_WITH_CON = "/^\[%s:%s\]([\s\S][^\[]*)/m"; /** * 匹配authz配置文件中指定仓库的指定路径 不包含内容 * * 如 * [rep1:/] * 或 * [rep2:/floder] * 等 * * %s => $repName * %s => $repPaht str_replace('/', '\/', $repPath) * * @var string */ protected $REG_AUTHZ_REP_SPECIAL_PATH_WITHOUT_CON = "/^\[%s:%s\]/m"; /** * 匹配authz配置文件中指定仓库的所有路径 不包含内容 * * %s => $repName * * @var string */ protected $REG_AUTHZ_REP_ALL_PATH_WITHOUT_CON = "/^\[%s:(.*?)\]/m"; /** * 匹配authz配置文件中指定仓库的所有路径以及包含的内容 * * %s => $repName * * @var string */ protected $REG_AUTHZ_REP_ALL_PATH_WITH_CON = "/^\[%s:.*\][\s\S][^\[]*/m"; /** * 匹配authz配置文件中的所有仓库名称 * * 不匹配这些仓库的内容和具体路径 * * @var string */ protected $REG_AUTHZ_ALL_REP_WITHOUT_PATH_AND_CON = "/^\[(.*?):.*?\]/m"; /** * 将 svnadmin info $repPaht 的结果匹配为 key => value 形式 * * @var string */ protected $REG_REP_INFO = "/(.*):[\S]*(.*)/m"; /** * 配置文件svn内容 * * @var array */ protected $config_svn; /** * 配置文件bin内容 * * @var array */ protected $config_bin; function __construct($authzFileContent, $passwdFileContent, $config_svn, $config_bin) { $this->authzFileContent = $authzFileContent; $this->passwdFileContent = $passwdFileContent; $this->config_svn = $config_svn; $this->config_bin = $config_bin; } }