# (c) 1999 Randolph Chung. Licensed under the GPL. <tausq@debian.org>
# (c) 2004 Martin Schulze. Licensed under the GPL. <joey@debian.org>
# (c) 2006 Ryan Murray. Licensed under the GPL. <rmurray@debian.org>
+# Copyright (c) 2008, 2011, 2013, 2015 Peter Palfrader
use lib '.';
use strict vars;
my %config = &Util::ReadConfigFile;
my $query = new CGI;
-my $id = uri_escape($query->param('id'));
-my $authtoken = uri_escape($query->param('authtoken'));
-my $password = &Util::CheckAuthToken($authtoken);
+my $id = $query->param('id');
+my $authtoken = $query->param('authtoken');
my $dosearch = uri_escape($query->param('dosearch'));
my $searchdn = uri_escape($query->param('searchdn'));
+
my $ldap = undef;
+my $password = undef;
+
+if ($authtoken || $id) {
+ $password = Util::TouchAuthToken($authtoken, $id);
+} else {
+ $password = '';
+ $id = '';
+ $authtoken = '';
+}
my $proto = ($ENV{HTTPS} ? "https" : "http");
# go through %searchdata and pull out all the search criteria the user
# specified...
- my $filter = "(objectclass=inetOrgPerson)";
+ my $filter = "(objectclass=inetOrgPerson)(!(accountStatus=*))";
foreach (keys(%searchdata)) {
if ($query->param($searchdata{$_}{formname})) {
if ($query->param($searchdata{$_}{fuzzy})) {
my $ok = 0;
# These are local variables.. i have enough global vars as it is... <sigh>
my ($ufdn, $login, $name, $icquin, $jabberjid, $email, $fingerprint,
- $address, $latlong, $vacation, $created, $modified, $lastseen, $gender) = undef;
+ $address, $latlong, $vacation, $created, $modified, $lastseen) = undef;
# Last seen information (Echelon)
$lastseen = &Util::FormatLastSeen($entries->{$dn}->{"activity-pgp"}->[0],
$latlong .= " / ";
$latlong .= $data->{longitude}->[0] || "none";
- # Gender
- if ($data->{gender}->[0]) {
- if ($data->{gender}->[0] == 1) {
- $gender = $dataspecref->{male};
- } elsif ($data->{gender}->[0] == 2) {
- $gender = $dataspecref->{female};
- } else {
- $gender = $dataspecref->{unspecified};
- }
- } else {
- $gender = $dataspecref->{unspecified};
- }
-
# Modified/created time. TODO: maybe add is the name of the creator/modifier
$modified = &Util::FormatTimestamp($data->{modifytimestamp}->[0]);
$created = &Util::FormatTimestamp($data->{createtimestamp}->[0]);
}
$outsub{searchresults} .= FormatEntry($dataspecref->{uid}, $login);
- $outsub{searchresults} .= FormatEntry($dataspecref->{gender}, $gender);
if ($data->{ircnick}->[0]) {
$outsub{searchresults} .= FormatEntry($dataspecref->{ircnick}, $data->{ircnick}->[0]);
}
# If this is ourselves, present a link to do mods
if ($auth && ($id eq $data->{uid}->[0])) { #TODO: extract this string into a url for translation...
- $outsub{searchresults} .= "<a href=\"$proto://$ENV{SERVER_NAME}/$config{webupdateurl}?id=$id&authtoken=$authtoken&editdn=".uri_escape($dn, "\x00-\x40\x7f-\xff")."\">Edit my settings</a>\n";
+ $outsub{searchresults} .= "<a href=\"$proto://$ENV{SERVER_NAME}/$config{webupdateurl}?id=$id;authtoken=$authtoken\">Edit my settings</a>\n";
}
$outsub{searchresults} .= "<br><br><br>\n";