1 |
dungog |
1.1 |
diff -Nur -x '*.orig' -x '*.rej' e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-delete mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-delete |
2 |
|
|
--- e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-delete 2005-07-27 23:26:55.000000000 +0200 |
3 |
|
|
+++ mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-delete 2010-02-02 19:39:37.000000000 +0100 |
4 |
|
|
@@ -36,9 +36,9 @@ |
5 |
|
|
} |
6 |
|
|
|
7 |
|
|
my $event = $ARGV [0]; |
8 |
|
|
-my $userName = $ARGV [1]; |
9 |
|
|
+my $name = $ARGV [1]; |
10 |
|
|
|
11 |
|
|
-die "Username argument missing." unless defined ($userName); |
12 |
|
|
+die "Username argument missing." unless defined ($name); |
13 |
|
|
|
14 |
|
|
#------------------------------------------------------------ |
15 |
|
|
# Delete user from LDAP directory. First read LDAP password |
16 |
|
|
@@ -57,17 +57,30 @@ |
17 |
|
|
password => $pw |
18 |
|
|
); |
19 |
|
|
|
20 |
|
|
-my @search_args = ( base => $base, filter => "uid=$userName" ); |
21 |
|
|
+my @search_args = ( base => "ou=Users,$base", filter => "uid=$name" ); |
22 |
|
|
my $mesg = $ldap->search(@search_args); |
23 |
|
|
|
24 |
|
|
$mesg->code && die "Failed ldap search: ", $mesg->error; |
25 |
|
|
|
26 |
|
|
if ($mesg->count > 1) |
27 |
|
|
{ |
28 |
|
|
- die("LDAP search for $userName returned $mesg->count - 1 expected\n"); |
29 |
|
|
+ die("LDAP search for $name returned $mesg->count - 1 expected\n"); |
30 |
|
|
} |
31 |
|
|
|
32 |
|
|
$ldap->delete($mesg->entry(0)); |
33 |
|
|
+ |
34 |
|
|
+if ($event eq 'group-delete'){ |
35 |
|
|
+ @search_args = ( base => "ou=Groups,$base", filter => "cn=$name" ); |
36 |
|
|
+ $mesg = $ldap->search(@search_args); |
37 |
|
|
+ $mesg->code && die "Failed ldap search: ", $mesg->error; |
38 |
|
|
+ if ($mesg->count > 1) |
39 |
|
|
+ { |
40 |
|
|
+ die("LDAP search for $name returned $mesg->count - 1 expected\n"); |
41 |
|
|
+ } |
42 |
|
|
+ |
43 |
|
|
+ $ldap->delete($mesg->entry(0)); |
44 |
|
|
+} |
45 |
|
|
+ |
46 |
|
|
$ldap->unbind; |
47 |
|
|
|
48 |
|
|
exit (0); |
49 |
|
|
diff -Nur -x '*.orig' -x '*.rej' e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-update mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-update |
50 |
|
|
--- e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-update 2010-02-02 19:42:46.000000000 +0100 |
51 |
|
|
+++ mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-update 2010-02-02 19:41:49.000000000 +0100 |
52 |
|
|
@@ -106,6 +106,7 @@ |
53 |
|
|
my $type = $acct->prop('type'); |
54 |
|
|
next unless ($type eq 'user' || $type eq 'group'); |
55 |
|
|
my @attrs = (); |
56 |
|
|
+ my @groupAttrs = (); |
57 |
|
|
if (($type eq 'user') || ($key eq 'admin')) |
58 |
|
|
{ |
59 |
|
|
my $name = $acct->prop('FirstName') . " " . $acct->prop('LastName'); |
60 |
|
|
@@ -147,6 +148,9 @@ |
61 |
|
|
|
62 |
|
|
my $key = $acct->key; |
63 |
|
|
my $desc = $acct->prop('Description') || ''; |
64 |
|
|
+ my @members = split(/,/,($acct->prop('Members') || '')); |
65 |
|
|
+ my $gid = $acct->prop('Gid'); |
66 |
|
|
+ |
67 |
|
|
utf8::upgrade($desc); |
68 |
|
|
push @attrs, (cn => $desc) unless $desc =~ /^\s*$/; |
69 |
|
|
push @attrs, (mail => "$key\@$domain"); |
70 |
|
|
@@ -155,22 +159,44 @@ |
71 |
|
|
push @attrs, (ou => $dept) unless $dept =~ /^\s*$/; |
72 |
|
|
push @attrs, (l => $city) unless $city =~ /^\s*$/; |
73 |
|
|
push @attrs, (street => $street) unless $street =~ /^\s*$/; |
74 |
|
|
+ |
75 |
|
|
+ push @groupAttrs, (objectClass => 'posixGroup'); |
76 |
|
|
+ push @groupAttrs, (cn => $key); |
77 |
|
|
+ push @groupAttrs, (gidNumber => $gid); |
78 |
|
|
+ push @groupAttrs, (description => $desc) unless $desc =~ /^\s*$/; |
79 |
|
|
+ push @groupAttrs, (memberUid => \@members); |
80 |
|
|
} |
81 |
|
|
- my $dn = "uid=$key,$base"; |
82 |
|
|
+ my $dn = "uid=$key,ou=Users,$base"; |
83 |
|
|
+ my $groupDn = "cn=$key,ou=Groups,$base"; |
84 |
|
|
if (($event eq 'user-create') || ($event eq 'group-create')) |
85 |
|
|
{ |
86 |
|
|
my $result = $ldap->add ($dn, attr => \@attrs); |
87 |
|
|
|
88 |
|
|
$result->code && |
89 |
|
|
warn "failed to add entry for $dn: ", $result->error ; |
90 |
|
|
+ |
91 |
|
|
+ if ($type eq 'group'){ |
92 |
|
|
+ $result = $ldap->add ($groupDn, attr => \@groupAttrs); |
93 |
|
|
+ |
94 |
|
|
+ $result->code && |
95 |
|
|
+ warn "failed to add entry for $groupDn: ", $result->error ; |
96 |
|
|
+ } |
97 |
|
|
} |
98 |
|
|
else |
99 |
|
|
{ |
100 |
|
|
my %attrs = @attrs; |
101 |
|
|
+ my %groupAttrs = @groupAttrs; |
102 |
|
|
my $result = $ldap->modify ($dn, replace => \%attrs); |
103 |
|
|
|
104 |
|
|
$result->code && |
105 |
|
|
warn "failed to modify entry for $dn: ", $result->error ; |
106 |
|
|
+ |
107 |
|
|
+ if ($type eq 'group'){ |
108 |
|
|
+ $result = $ldap->modify ($groupDn, replace => \%groupAttrs); |
109 |
|
|
+ |
110 |
|
|
+ $result->code && |
111 |
|
|
+ warn "failed to modify entry for $groupDn: ", $result->error ; |
112 |
|
|
+ } |
113 |
|
|
} |
114 |
|
|
} |
115 |
|
|
$ldap->unbind; |
116 |
|
|
diff -Nur -x '*.orig' -x '*.rej' e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/10organisation mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/10organisation |
117 |
|
|
--- e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/10organisation 2010-02-02 19:42:46.000000000 +0100 |
118 |
|
|
+++ mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/10organisation 2010-02-02 19:39:37.000000000 +0100 |
119 |
|
|
@@ -4,7 +4,19 @@ |
120 |
|
|
|
121 |
|
|
$OUT .= "dn: $ldapBase\n"; |
122 |
|
|
$OUT .= "objectClass: organization\n"; |
123 |
|
|
+ $OUT .= "objectClass: top\n"; |
124 |
|
|
$OUT .= "dc: $dc\n"; |
125 |
|
|
$OUT .= "o: $o\n"; |
126 |
|
|
$OUT .= "objectClass: dcObject\n"; |
127 |
|
|
+ |
128 |
|
|
+ $OUT .= "\n"; |
129 |
|
|
+ $OUT .= "dn: ou=Users,$ldapBase\n"; |
130 |
|
|
+ $OUT .= "objectClass: top\n"; |
131 |
|
|
+ $OUT .= "objectClass: organizationalUnit\n"; |
132 |
|
|
+ $OUT .= "ou: Users\n\n"; |
133 |
|
|
+ $OUT .= "dn: ou=Groups,$ldapBase\n"; |
134 |
|
|
+ $OUT .= "objectClass: top\n"; |
135 |
|
|
+ $OUT .= "objectClass: organizationalUnit\n"; |
136 |
|
|
+ $OUT .= "ou: Groups\n\n"; |
137 |
|
|
} |
138 |
|
|
+ |
139 |
|
|
diff -Nur -x '*.orig' -x '*.rej' e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/50groups mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/50groups |
140 |
|
|
--- e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/50groups 2010-02-02 19:42:46.000000000 +0100 |
141 |
|
|
+++ mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/50groups 2010-02-02 19:39:37.000000000 +0100 |
142 |
|
|
@@ -1,15 +1,28 @@ |
143 |
|
|
{ |
144 |
|
|
foreach ($a->groups) |
145 |
|
|
- { |
146 |
|
|
+ { |
147 |
|
|
my $key = $_->key; |
148 |
|
|
- my $desc = $_->prop('Description'); |
149 |
|
|
+ my $desc = $_->prop('Description') || ''; |
150 |
|
|
+ my $gid = $_->prop('Gid'); |
151 |
|
|
+ my @members = split( /,/, ($_->prop('Members') || '') ); |
152 |
|
|
|
153 |
|
|
$OUT .= "\n"; |
154 |
|
|
- $OUT .= "dn: uid=$key,$ldapBase\n"; |
155 |
|
|
+ $OUT .= "dn: uid=$key,ou=Users,$ldapBase\n"; |
156 |
|
|
$OUT .= "objectClass: inetOrgPerson\n"; |
157 |
|
|
$OUT .= "mail: $key\@$DomainName\n"; |
158 |
|
|
$OUT .= utf8("cn: $desc\n") if $desc; |
159 |
|
|
$OUT .= "uid: $key\n"; |
160 |
|
|
$OUT .= "sn: $key\n"; |
161 |
|
|
+ |
162 |
|
|
+ $OUT .= "\n"; |
163 |
|
|
+ $OUT .= "dn: cn=$key,ou=Groups,$ldapBase\n"; |
164 |
|
|
+ $OUT .= "objectClass: posixGroup\n"; |
165 |
|
|
+ $OUT .= "gidNumber: $gid\n"; |
166 |
|
|
+ $OUT .= "cn: $key\n"; |
167 |
|
|
+ $OUT .= "description: $desc\n"; |
168 |
|
|
+ foreach my $member (@members){ |
169 |
|
|
+ $OUT .= "memberUid: $member\n"; |
170 |
|
|
+ } |
171 |
|
|
} |
172 |
|
|
} |
173 |
|
|
+ |
174 |
|
|
diff -Nur -x '*.orig' -x '*.rej' e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/50users mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/50users |
175 |
|
|
--- e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/50users 2010-02-02 19:42:46.000000000 +0100 |
176 |
|
|
+++ mezzanine_patched_e-smith-ldap-5.2.0/root/etc/e-smith/templates/home/e-smith/db/ldap/ldif/50users 2010-02-02 19:39:37.000000000 +0100 |
177 |
|
|
@@ -15,7 +15,7 @@ |
178 |
|
|
my $password = $passwd{$key}; |
179 |
|
|
|
180 |
|
|
$OUT .= "\n"; |
181 |
|
|
- $OUT .= utf8("dn: uid=$key,$ldapBase\n"); |
182 |
|
|
+ $OUT .= utf8("dn: uid=$key,ou=Users,$ldapBase\n"); |
183 |
|
|
$OUT .= utf8("objectClass: inetOrgPerson\n"); |
184 |
|
|
$OUT .= utf8("uid: $key\n"); |
185 |
|
|
$OUT .= utf8("cn: $name\n") if $name; |
186 |
|
|
|