--
my $tacacsGroupPrefix = 'tacacs';
my $require_tacacsGroupPrefix = undef;
my $unlimit_ad_group_membership = undef;
my $expand_ad_group_membership = undef;
$LDAP_SERVER_TYPE = $ENV{'LDAP_SERVER_TYPE'} if exists $ENV{'LDAP_SERVER_TYPE'};
$flag_chpass = $ENV{'FLAG_CHPW'} if exists $ENV{'FLAG_CHPW'};
--
$tacacsGroupPrefix = $ENV{'TACACS_GROUP_PREFIX'} if exists $ENV{'TACACS_GROUP_PREFIX'};
$tacacsGroupPrefix = $ENV{'TACACS_AD_GROUP_PREFIX'} if exists $ENV{'TACACS_AD_GROUP_PREFIX'};
$tacacsGroupPrefix = $ENV{'AD_GROUP_PREFIX'} if exists $ENV{'AD_GROUP_PREFIX'};
$require_tacacsGroupPrefix = $ENV{'REQUIRE_TACACS_GROUP_PREFIX'} if exists $ENV{'REQUIRE_TACACS_GROUP_PREFIX'};
$require_tacacsGroupPrefix = $ENV{'REQUIRE_TACACS_AD_GROUP_PREFIX'} if exists $ENV{'REQUIRE_TACACS_AD_GROUP_PREFIX'};
$require_tacacsGroupPrefix = $ENV{'REQUIRE_AD_GROUP_PREFIX'} if exists $ENV{'REQUIRE_AD_GROUP_PREFIX'};
$unlimit_ad_group_membership = $ENV{'UNLIMIT_AD_GROUP_MEMBERSHIP'} if exists $ENV{'UNLIMIT_AD_GROUP_MEMBERSHIP'};
$expand_ad_group_membership = $ENV{'EXPAND_AD_GROUP_MEMBERSHIP'} if exists $ENV{'EXPAND_AD_GROUP_MEMBERSHIP'};
unless (defined $flag_use_memberof) {
foreach my $v ('TACACS_GROUP_PREFIX', 'REQUIRE_TACACS_GROUP_PREFIX', 'UNLIMIT_AD_GROUP_MEMBERSHIP',
--
foreach $m (sort grep { /^CN=$tacacsGroupPrefix[^,]*,/i } @$val) {
$m =~ s/^CN=$tacacsGroupPrefix([^,]*),.*$/$1/i;
if ($m) {
if (exists $V[AV_A_TACMEMBER]) {
$V[AV_A_TACMEMBER] .= ',"' . $m . '"';
} else {
$V[AV_A_TACMEMBER] = '"' . $m . '"';
--
if (defined ($require_tacacsGroupPrefix) && !defined($V[AV_A_TACMEMBER])){
goto fail;
}
}
if (defined($flag_authorize_only) && $V[AV_A_TACTYPE] ne AV_V_TACTYPE_INFO){