Perl Subversion pre-commit フックを使用して、ユーザーが Subversion リポジトリの特定のポイントを変更または追加する権限を持っているかどうかを確認できます。次のような制御ファイルを使用します。
[GROUP SERVER]
users = bob, ted, carol, alice
[GROUP CLIENT]
users = tom, dick, harry
[FILE Client Developers don't touch the Server]
file = proj/server
users = @CLIENT
permission = read-only
[FILE Server people don't touch the Client]
file = proj/client
users = @SERVER
permission = read-only
[FILE Let Tom Do everything]
file = .*
users = tom
permission = read-write
ご覧のとおり、グループを定義し、アクセス許可を設定するときにグループを使用できます。LDAP グループを使用して同じことを行うことができれば、大変なことになると思いました。そうすれば、Windows 管理者は誰がどのグループに属しているかを把握できるため、Facebook のステータスを最新の状態に保つための時間が増えます。
Subversion で LDAP を次のように構成しました。
<Location /mfx>
DAV svn
SVNParentPath /subversion/svn_repos
AuthType basic
AuthName "Source Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://ldapserver:3268/dc=mycompany,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "CN=SubVersion,OU=Users,OU=Accounts,DC=mycompany,DC=com"
AuthLDAPBindPassword "Swordfish"
Require valid-user
</Location>
LDAP サーバーへの接続は正常に機能していますが、今、そのユーザーがどのグループに属しているかを調べる必要があります。ユーザーの Subversion 名は にあります。次に$svnUser
、LDAP データベースでそのユーザーを見つける必要があります。彼らが所属するさまざまなグループを確認します (これはLDAP レコードのmemberOf値です)。しかし、これについてどうすればよいかわかりません。
これまでのところ、私のコードは次のようになります。
#! /usr/bin/env perl
#
use strict;
use warnings;
use feature qw(say);
use constant {
LDAP_URL => "ldapserver",
LDAP_PORT => 3268,
LDAP_SCHEME => "ldap",
BIND_DN => "CN=SubVersion,OU=Users,OU=Accounts,DC=mycompany,DC=com",
BIND_PWORD => "Swordfish",
USER_DN => "sAMAccountName",
};
use Net::LDAP;
#
# Create LDAP Connection
#
my $ldap = Net::LDAP->new(LDAP_URL, port=> LDAP_PORT, scheme=> LDAP_SCHEME);
my $message;
$message = $ldap->bind(BIND_DN, password => BIND_PWORD);
if ($message->code != 0) {
die qq(Error in LDAP Binding: ) . $message->error_desc;
}
さて、私はする必要があります$ldap->search
が、何についてですか?私は構文に困惑しています。