stta/stta/home-tta/tools/scanttacache
2021-10-01 20:35:43 +01:00

109 lines
3.5 KiB
Perl
Executable File

#!/usr/bin/perl
# where is config file for parameters .... (same as Webmin)
$config_directory="/etc/webmin/tarantella";
$debug=0; # if 0 it will try to get config file value
require './ttacache-lib.pl';
$tta_logfile=$ENV{'TTA_LOGFILE'};
&initialize();
$rule_limit=$config{cache_rulelimit};
$default_obj="cn=$config{ldapcache_defaultobj}";
$default_dnobj="$config{ldapcache_dndefaultobj}";
$chek_default=$config{cache_chkdefaults};
$chek_ttalogin=$config{cache_chkttalogin};
do "./ldap-lib.pl";
$UserName=$ENV{'TTA_UserName'};
$HostName=$ENV{'TTA_HostName'};
$AppName=$ENV{'TTA_ApplicationName'};
$NameDomain=$ENV{'TTA_DomainName'};
if ( "$NameDomain" eq "" ) { $NameDomain=$config{cache_domain} };
$tta_username=$ENV{'tta_username'};
$tta_password=$ENV{'tta_password'};
$WinAppServer=$ENV{'TTA_WindowsApplicationServer'};
$ConnectionService=$ENV{'TTA_CONNECTIONSERVICE'};
$tta_host=$ENV{'tta_host'};
$ens_base=$config{'ens_base'}.$config{'tta_base'};
$UserName=~s/$config{'tta_ldapUser'}//;
$UserName=~s/,$config{'ldap_base'}//;
$UserName=~s/$config{'ens_base'}//;
$AppName=~s/$ens_base\///;
$AppName=~s/$config{'ens_base'}//;
$HostName=~s/$ens_base\///;
$userType="LDAP";
$NameUser="";
$OuName="";
$NameApp="";
$NameAppGrp="";
$NameHost=$HostName;
$use_ttalogin_values=false;
$numKeyLimit=6;
&scan_env();
if ( $debug gt 0 ) { &print_results(); };
&out_empty_data; # just in case
&connect_cache ();
if (! $conncache ) { exit } ;
for ( $i=1 ; $i< $rule_limit+1; $i++ ) {
$obj=eval("\$config{cacherule_$i}");
if ( "$obj" eq "apps" ) { $dn="ou=$NameApp,$NameAppGrp,$config{ldapcache_base}"; }
if ( "$obj" eq "grpapps" ) { $dn="$NameAppGrp,$config{ldapcache_base}"; }
if ( "$obj" eq "hosts" ) {
if ("$NameAppGrp" eq "$NameHostGrp" ) {
$dn="$NameHostGrp,$config{ldapcache_base}";
} else {
$dn="ou=$NameHost,$NameHostGrp,$config{ldapcache_base}";
}
}
if ( "$obj" eq "grphosts" ) { $dn="$NameHostGrp,$config{ldapcache_base}"; }
if ( "$obj" eq "domains" ) { $dn="ou=$NameDomain,$config{ldapcache_base}"; }
$dn=~s/cn=/ou=/g;
# Trying Username
$dn_obj="cn=$NameUser,$OuName,$dn";
if ( $debug eq 2 ) { print DebugLog "($i) $obj -- $dn_obj \n" };
$entry = $conncache->browse ($dn_obj);
if ( $entry ) { &outData ; $i=$rule_limit+1}
# Trying default_obj for UserOU
if ( "$chek_default" eq "true" ) {
$dn_obj="$default_obj,$OuName,$dn";
if ( $debug eq 2 ) { print DebugLog "($i) $obj -- $dn_obj \n" };
$entry = $conncache->browse ($dn_obj);
if ( $entry ) { &outData ; $i=$rule_limit+1}
}
# Trying $dn (OBJECT) default_obj
if ( "$chek_default" eq "true" ) {
$dn_obj="$default_obj,$dn";
if ( $debug eq 2 ) { print DebugLog "($i) $obj -- $dn_obj \n" };
$entry = $conncache->browse ($dn_obj);
if ( $entry ) { &outData ; $i=$rule_limit+1}
}
}
# Last Chance ...
if ( !$entry ) {
if ( "$chek_ttalogin" eq "true" ) {
if ( $debug eq 2 ) { print DebugLog "(ttalogin) -- $tta_username \n" };
$use_ttalogin_values=true;
if ( $debug gt 0 ) { &print_data(); };
} elsif ( "$chek_default" eq "true" ) {
$dn_obj="$default_dnobj,$config{ldapcache_base}";
if ( $debug eq 2 ) { print DebugLog "(last) -- $dn_obj \n" };
$entry = $conncache->browse ($dn_obj);
if ( $entry ) { &outData;}
}
}
if ( $debug gt 0 ) { &endclose_debug(); }
exit;