summaryrefslogtreecommitdiffstats
path: root/pki/base/tps/forms/esc/cgi-bin/sow/ajax-list.cgi
blob: 8db2d3e485ea80dd19194bf2d3b3133fbea00a9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#! /usr/bin/perl -w
#
# --- BEGIN COPYRIGHT BLOCK ---
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation;
# version 2.1 of the License.
# 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
# 
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA  02110-1301  USA 
# 
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# --- END COPYRIGHT BLOCK ---
#

use CGI;

[REQUIRE_CFG_PL]

my $ldapHost = get_ldap_host();
my $ldapPort = get_ldap_port();
my $basedn = get_base_dn();
my $ldapsearch = get_ldapsearch();

sub main()
{

  my $q = new CGI;

  my $letters = $q->param('letters');
  if ($letters eq "") {
    # HACK: ajax.js posts parameters into POST URL
    $letters = $ENV{'QUERY_STRING'};
    $letters =~ s/.*letters=//g;
    $letters =~ s/\+/ /g;
  }

  my $tmpfile = "/tmp/ajax-list-$$.txt";
  my $cmd = $ldapsearch . " " .
            "-x " .
            "-b \"" .  $basedn . "\" " .
            "-h \"" . $ldapHost . "\" " .
            "-p \"" . $ldapPort ."\" " .
            "-S \"cn\" " .
            "-s sub \"(cn=" . $letters . "*)\" cn uid > " . $tmpfile;
  system($cmd);

  my $result = "";
  open(F, "<$tmpfile");
  my $cn;
  my $uid;
  while (<F>) {
    if (/cn/) {
      $cn = $_;
      chomp($cn);
      $cn =~ s/cn: //g;
      $uid = <F>;
      chomp($uid);
      $uid =~ s/uid: //g;
      $result .= $uid . "###" . $cn . "|";
    }
  }
  close(F);
  system("rm $tmpfile");

  print "Content-Type: text/html\n\n";
  print $result;
}

&main();