LemonLDAP::NG Web SSO
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.
 
 
 
 
 
lemonldap-ng/scripts/findAttr.pl

105 lines
3.1 KiB

#!/usr/bin/perl
use strict;
my $IGNORE = join(
'|', qw(
csr urldc cfgNum p (?:s|rS)essionInfo dn user mustRedirect password dbi\w+
reVHosts stack timezone vident _\w+ lmConf table (?:st|db)h res id
refLocalStorage User Password args conf generate mdone obj error
authChoiceModules deleted entry macros modules notifObject menuModules
mailSessionKey mail logoutServices ns service modified force menuError
cookie SOAPMessage clean func local noQuotes categories noCache
)
);
my ( $attr, $attrFile );
foreach my $module (qw(common handler manager portal)) {
open CMD,
"find lemonldap-ng-$module/lib/Lemonldap/NG -type f -name '*.pm'|";
my @files;
while (<CMD>) {
chomp;
push @files, $_;
}
close CMD;
# my @files = qw(lemonldap-ng-portal/lib/Lemonldap/NG/Portal/AuthChoice.pm);
foreach my $file (@files) {
# Ignode old liberty-Alliance
next if ( $file =~ m#Portal/AuthLA.pm$# );
next if ( $file =~ /_Struct/ );
open F, $file;
$file =~ s#.*/NG/##;
my $autoload = 0;
my $pod = 0;
while (<F>) {
$autoload = 1 if (/use\s+AutoLoader/);
if(/^=/) {
if(/^=cut/){$pod=0;}else{$pod=1};
}
next if($pod);
last if ( /^__END__$/ and not $autoload );
if (/\$(?:self|args)->\{\s*(\w+)\s*\}/) {
my $k = $1;
unless ( $k =~ /^$IGNORE$/o ) {
$attr->{$module}->{$1}++;
$attrFile->{$module}->{$1}->{$file}++;
}
}
}
close F;
}
#use Data::Dumper;
#print Dumper($attr);
}
open F, 'doc/pages/documentation/latest/parameterlist.html';
my $documentedAttr;
while (<F>) {
next unless (/<td class="col1.*?">\s*(\w+)\s*<\/td>/);
$documentedAttr->{$1}++;
}
close F;
open F, 'lemonldap-ng-manager/lib/Lemonldap/NG/Manager/_Struct.pm';
my $managedAttr;
my $buf;
while (<F>) {
$buf = '' if ( $buf =~ /,$/ );
$buf .= $_;
$managedAttr->{$1}++ if ( $buf =~ /=>\s*'\w+:\/(\w+)/s );
}
close F;
my ( $unmanagedAttr, $undocumentedAttr );
foreach my $module (qw(common handler manager portal)) {
foreach my $k ( keys %{ $attr->{$module} } ) {
# Parameter that must not be documented
#next if ( $k =~ /^$IGNORE$/ );
unless ( defined( $managedAttr->{$k} ) ) {
$unmanagedAttr->{$module}->{$k}++;
}
unless ( defined( $documentedAttr->{$k} ) ) {
$undocumentedAttr->{$module}->{$k}++;
}
# TODO: scan doc/4.1-Configuration-parameter-list.html
}
print "\n##### ".uc($module)." #####\n\n### Unmanaged ###\n";
foreach my $k ( sort keys %{ $unmanagedAttr->{$module} } ) {
print "$k => "
. join( ', ', keys( %{ $attrFile->{$module}->{$k} } ) ) . "\n";
}
print "\n### Undocumented ###\n";
foreach my $k ( sort keys %{ $undocumentedAttr->{$module} } ) {
print "$k => "
. join( ', ', keys( %{ $attrFile->{$module}->{$k} } ) ) . "\n";
}
}