X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=machines.cgi;h=bf0c058869bd9516fe6cbd2ab1035bdb01fc1c0a;hb=0703b543dee932b71a73e7c4b1b1922a6f4247b4;hp=34d622a9536db5860e2f313aef53d5181e50a0a9;hpb=43878ea9452342f57b453ae2098100de2089517d;p=mirror%2Fuserdir-ldap-cgi.git
diff --git a/machines.cgi b/machines.cgi
index 34d622a..bf0c058 100755
--- a/machines.cgi
+++ b/machines.cgi
@@ -83,6 +83,28 @@ sub sshfingerprint {
return $hrfpr;
}
+sub wiki_link($) {
+ my ($in) = @_;
+ $in =~ s#\[\[(.*?)\|(.*?)\]\]#$2#g;
+ $in =~ s#\[\[(.*?)\]\]#$1#g;
+ return $in;
+}
+
+sub purposes_uplist($) {
+ my ($purposes) = @_;
+ my $out = undef;
+
+ if (scalar @$purposes >= 1) {
+ $out = "
".
+ join("", map {
+ "- ".wiki_link($_)."
\n";
+ } sort {my $A=$a; my $B=$b; $A =~ s/[\[\]]//g; $B =~ s/[\[\]]//g; $A cmp $B} @{$purposes}
+ ).
+ "
";
+ }
+ return $out;
+}
+
$SIG{__DIE__} = \&DieHandler;
my $query = new CGI;
@@ -92,6 +114,7 @@ my $sortorder = lc($query->param('sortorder')) || "asc";
&Util::HTMLSendHeader;
$ldap = Net::LDAP->new($config{ldaphost}) || &Util::HTMLError($!);
+&Util::UpgradeConnection($ldap) unless $config{usessl} eq 'False';
$mesg;
$ldap->bind;
@@ -149,9 +172,9 @@ foreach $dn (sort {$entries->{$a}->{host}->[0] cmp $entries->{$b}->{host}->[0]}
}
}
- #Reformat purposes to be pleasing for the human eye:
- $output{purpose} = join(",", @{$data->{purpose}});
-
+ my $purpose = purposes_uplist($data->{purpose});
+ $output{purpose} = $purpose if defined $purpose;
+
$selected = " selected ";
}
@@ -197,9 +220,9 @@ if ($output{havehostdata}) {
my @sorted;
if ($sortorder eq "asc") {
- @sorted = sort {$summary{$a}->{$sortby} cmp $summary{$b}->{$sortby}} keys(%summary);
+ @sorted = sort {($summary{$a}->{$sortby} cmp $summary{$b}->{$sortby}) || ($summary{$a}->{'host'} cmp $summary{$b}->{'host'})} keys(%summary)
} else {
- @sorted = sort {$summary{$b}->{$sortby} cmp $summary{$a}->{$sortby}} keys(%summary);
+ @sorted = sort {($summary{$b}->{$sortby} cmp $summary{$a}->{$sortby}) || ($summary{$a}->{'host'} cmp $summary{$b}->{'host'})} keys(%summary)
}
foreach $host (@sorted) {
$hostdetails .= "";