-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathview_all.cgi
executable file
·59 lines (48 loc) · 1.24 KB
/
view_all.cgi
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
#! /usr/bin/perl
use strict;
use NetLdap;
use Constants;
use LMConfig;
use Utils;
use ParseExop;
use Tmpl;
use ManipCGI;
my @disp_attr = (
'cn', 'mail', 'sn', 'uid',
'o', 'c', 'l', 'jpegPhoto',
'modifyTimestamp', 'modifiersName', 'createTimestamp',
);
my $obj_tmpl = new Tmpl;
my $obj_cgi = new ManipCGI;
my $obj_ldap = new NetLdap;
if (! $obj_ldap->bind) {
print $obj_cgi->header();
$obj_tmpl->throw_error_code('ldap_bind_anonymous');
}
$obj_tmpl->set_vars("uid", $ENV{'REMOTE_USER'});
my %ulist;
foreach my $ucnt ($obj_ldap->GetAllUID(@disp_attr)) {
my %acnt = ();
foreach (@disp_attr) {
$acnt{$_} = $ucnt->get_value($_);
}
$acnt{'photo_exist'} = defined($acnt{'jpegPhoto'}) ? 0 : 1;
$ulist{$acnt{'uid'}} = \%acnt;
}
$obj_tmpl->set_vars("ulist", \%ulist);
my %glist;
foreach my $gcnt ($obj_ldap->GetAllGID('cn', 'memberUid')) {
my %acnt = ();
my @amem = ();
my %hmem = ();
$acnt{'cn'} = $gcnt->get_value('cn');
@amem = $gcnt->get_value('memberUid');
foreach (@amem) {$hmem{$_} = $_; }
$acnt{'members'} = \%hmem;
$acnt{'memberUid'} = \@amem;
$glist{$acnt{'cn'}} = \%acnt;
}
$obj_tmpl->set_vars("glist", \%glist);
print $obj_cgi->header();
$obj_tmpl->process('view_all');
exit;