1 |
slords |
1.1 |
diff -up e-smith-base-5.2.0/root/etc/e-smith/events/actions/group-create-unix.add-extra-ldap e-smith-base-5.2.0/root/etc/e-smith/events/actions/group-create-unix |
2 |
|
|
--- e-smith-base-5.2.0/root/etc/e-smith/events/actions/group-create-unix.add-extra-ldap 2010-11-04 10:57:22.000000000 -0600 |
3 |
|
|
+++ e-smith-base-5.2.0/root/etc/e-smith/events/actions/group-create-unix 2010-11-04 11:06:42.000000000 -0600 |
4 |
|
|
@@ -27,6 +27,7 @@ use strict; |
5 |
|
|
use Errno; |
6 |
|
|
use esmith::ConfigDB; |
7 |
|
|
use esmith::AccountsDB; |
8 |
|
|
+use File::Temp; |
9 |
|
|
|
10 |
|
|
my $conf = esmith::ConfigDB->open_ro |
11 |
|
|
or die "Could not open Config DB"; |
12 |
|
|
@@ -36,6 +37,10 @@ my $accounts = esmith::AccountsDB->open |
13 |
|
|
my $ldapauth = $conf->get('ldap')->prop('Authentication') || 'disabled'; |
14 |
|
|
my $x = 0; # exit value |
15 |
|
|
|
16 |
|
|
+my $domain = $conf->get('DomainName') |
17 |
|
|
+ || die("Couldn't determine domain name"); |
18 |
|
|
+$domain = $domain->value; |
19 |
|
|
+ |
20 |
|
|
my $event = $ARGV [0]; |
21 |
|
|
my $groupName = $ARGV [1]; |
22 |
|
|
|
23 |
|
|
@@ -93,11 +98,16 @@ if ($ldapauth ne 'enabled') |
24 |
|
|
} |
25 |
|
|
|
26 |
|
|
# Create the user's unique group first (in ldap) |
27 |
|
|
+my $tmpattr = File::Temp->new(); |
28 |
|
|
+print $tmpattr "mail: $groupName\@$domain\n"; |
29 |
|
|
+print $tmpattr "description: $description\n"; |
30 |
|
|
system( |
31 |
|
|
"/usr/sbin/cpu", "groupadd", |
32 |
|
|
+ "-a", "$tmpattr", |
33 |
|
|
"-g", $gid, |
34 |
|
|
$groupName |
35 |
|
|
) == 0 or ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to create (ldap) group $groupName.\n" ); |
36 |
|
|
+undef $tmpattr; |
37 |
|
|
|
38 |
|
|
# Now create the dummy user account (in ldap) |
39 |
|
|
system( |
40 |
|
|
diff -up e-smith-base-5.2.0/root/etc/e-smith/events/actions/group-modify-unix.add-extra-ldap e-smith-base-5.2.0/root/etc/e-smith/events/actions/group-modify-unix |
41 |
|
|
--- e-smith-base-5.2.0/root/etc/e-smith/events/actions/group-modify-unix.add-extra-ldap 2010-11-04 10:57:22.000000000 -0600 |
42 |
|
|
+++ e-smith-base-5.2.0/root/etc/e-smith/events/actions/group-modify-unix 2010-11-04 11:06:52.000000000 -0600 |
43 |
|
|
@@ -27,6 +27,7 @@ use strict; |
44 |
|
|
use Errno; |
45 |
|
|
use esmith::ConfigDB; |
46 |
|
|
use esmith::AccountsDB; |
47 |
|
|
+use File::Temp; |
48 |
|
|
|
49 |
|
|
my $c = esmith::ConfigDB->open_ro || die "Couldn't open config db\n"; |
50 |
|
|
my $a = esmith::AccountsDB->open_ro || die "Couldn't open accounts db\n"; |
51 |
|
|
@@ -34,6 +35,10 @@ my $a = esmith::AccountsDB->open_ro || d |
52 |
|
|
my $ldapauth = $c->get('ldap')->prop('Authentication') || 'disabled'; |
53 |
|
|
my $x = 0; # exit value |
54 |
|
|
|
55 |
|
|
+my $domain = $c->get('DomainName') |
56 |
|
|
+ || die("Couldn't determine domain name"); |
57 |
|
|
+$domain = $domain->value; |
58 |
|
|
+ |
59 |
|
|
my $event = shift || die "Event name arg missing\n";; |
60 |
|
|
my @groups; |
61 |
|
|
|
62 |
|
|
@@ -76,6 +81,16 @@ foreach my $group (@groups) |
63 |
|
|
system("/usr/sbin/cpu", "-C/etc/cpu-system.conf", "usermod", "-c", "$groupDesc", "$groupName") == 0 |
64 |
|
|
or ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to modify (ldap) group description for $groupName.\n" ); |
65 |
|
|
|
66 |
|
|
+ my $tmpattr = File::Temp->new(); |
67 |
|
|
+ print $tmpattr "mail: $groupName\@$domain\n"; |
68 |
|
|
+ print $tmpattr "description: $groupDesc\n"; |
69 |
|
|
+ system( |
70 |
|
|
+ "/usr/sbin/cpu", "-C/etc/cpu-system.conf", "groupmod", |
71 |
|
|
+ "-a", "$tmpattr", |
72 |
|
|
+ "$groupName" |
73 |
|
|
+ ) == 0 or ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to modify (ldap) group description/email for $groupName.\n" ); |
74 |
|
|
+ undef $tmpattr; |
75 |
|
|
+ |
76 |
|
|
my ($name, $passwd, $gid, $members) = getgrnam ($groupName); |
77 |
|
|
my @oldMembers = split (/\s+/, $members); |
78 |
|
|
my @newMembers = split (/,/, $properties {'Members'}); |
79 |
|
|
diff -up e-smith-base-5.2.0/root/etc/e-smith/events/actions/user-create-unix.add-extra-ldap e-smith-base-5.2.0/root/etc/e-smith/events/actions/user-create-unix |
80 |
|
|
--- e-smith-base-5.2.0/root/etc/e-smith/events/actions/user-create-unix.add-extra-ldap 2010-11-04 10:57:22.000000000 -0600 |
81 |
|
|
+++ e-smith-base-5.2.0/root/etc/e-smith/events/actions/user-create-unix 2010-11-04 11:10:41.000000000 -0600 |
82 |
|
|
@@ -27,6 +27,7 @@ use strict; |
83 |
|
|
use Errno; |
84 |
|
|
use esmith::ConfigDB; |
85 |
|
|
use esmith::AccountsDB; |
86 |
|
|
+use File::Temp; |
87 |
|
|
|
88 |
|
|
my $conf = esmith::ConfigDB->open_ro; |
89 |
|
|
my $accounts = esmith::AccountsDB->open; |
90 |
|
|
@@ -34,6 +35,10 @@ my $accounts = esmith::AccountsDB->open; |
91 |
|
|
my $ldapauth = $conf->get('ldap')->prop('Authentication') || 'disabled'; |
92 |
|
|
my $x = 0; # exit value |
93 |
|
|
|
94 |
|
|
+my $domain = $conf->get('DomainName') |
95 |
|
|
+ || die("Couldn't determine domain name"); |
96 |
|
|
+$domain = $domain->value; |
97 |
|
|
+ |
98 |
|
|
my $event = $ARGV [0]; |
99 |
|
|
my $userName = $ARGV [1]; |
100 |
|
|
|
101 |
|
|
@@ -62,9 +67,13 @@ unless ($uid = $acct->prop('Uid')) |
102 |
|
|
my $gid = $acct->prop('Gid') || $uid; |
103 |
|
|
my $first = $acct->prop('FirstName') || ''; |
104 |
|
|
my $last = $acct->prop('LastName') || ''; |
105 |
|
|
+my $phone = $acct->prop('Phone') || ''; |
106 |
|
|
+my $company = $acct->prop('Company') || ''; |
107 |
|
|
+my $dept = $acct->prop('Department') || ''; |
108 |
|
|
+my $city = $acct->prop('City') || ''; |
109 |
|
|
+my $street = $acct->prop('Street') || ''; |
110 |
|
|
my $shell = $acct->prop('Shell') || '/usr/bin/rssh'; |
111 |
|
|
|
112 |
|
|
- |
113 |
|
|
if ($ldapauth ne 'enabled') |
114 |
|
|
{ |
115 |
|
|
# Create the user's unique group first |
116 |
|
|
@@ -99,6 +108,12 @@ system( |
117 |
|
|
) == 0 or ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to create (ldap) group $userName.\n" ); |
118 |
|
|
|
119 |
|
|
# Now create the user account (in ldap) |
120 |
|
|
+my $tmpattr = File::Temp->new(); |
121 |
|
|
+print $tmpattr "telephoneNumber: $phone\n"; |
122 |
|
|
+print $tmpattr "o: $company\n"; |
123 |
|
|
+print $tmpattr "ou: $dept\n"; |
124 |
|
|
+print $tmpattr "l: $city\n"; |
125 |
|
|
+print $tmpattr "street: $street\n"; |
126 |
|
|
system( |
127 |
|
|
"/usr/sbin/cpu", "useradd", |
128 |
|
|
"-u", $uid, |
129 |
|
|
@@ -106,6 +121,8 @@ system( |
130 |
|
|
"-c", "$first $last", |
131 |
|
|
"-f", "$first", |
132 |
|
|
"-E", "$last", |
133 |
|
|
+ "-e", "$userName\@$domain", |
134 |
|
|
+ "-a", "$tmpattr", |
135 |
|
|
"-d", "/home/e-smith/files/users/$userName", |
136 |
|
|
"-G", "shared", |
137 |
|
|
"-m", |
138 |
|
|
@@ -113,6 +130,7 @@ system( |
139 |
|
|
"-s", "$shell", |
140 |
|
|
$userName |
141 |
|
|
) == 0 or ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to create (ldap) account $userName.\n" ); |
142 |
|
|
+undef $tmpattr; |
143 |
|
|
|
144 |
|
|
|
145 |
|
|
# Release lock if we have one |
146 |
|
|
diff -up e-smith-base-5.2.0/root/etc/e-smith/events/actions/user-modify-unix.add-extra-ldap e-smith-base-5.2.0/root/etc/e-smith/events/actions/user-modify-unix |
147 |
|
|
--- e-smith-base-5.2.0/root/etc/e-smith/events/actions/user-modify-unix.add-extra-ldap 2010-11-04 10:57:22.000000000 -0600 |
148 |
|
|
+++ e-smith-base-5.2.0/root/etc/e-smith/events/actions/user-modify-unix 2010-11-04 11:12:28.000000000 -0600 |
149 |
|
|
@@ -22,12 +22,17 @@ use strict; |
150 |
|
|
use Errno; |
151 |
|
|
use esmith::AccountsDB; |
152 |
|
|
use esmith::ConfigDB; |
153 |
|
|
+use File::Temp; |
154 |
|
|
|
155 |
|
|
my $conf = esmith::ConfigDB->open or die "Could not open configuration db"; |
156 |
|
|
|
157 |
|
|
my $ldapauth = $conf->get('ldap')->prop('Authentication') || 'disabled'; |
158 |
|
|
my $x = 0; # exit value |
159 |
|
|
|
160 |
|
|
+my $domain = $conf->get('DomainName') |
161 |
|
|
+ || die("Couldn't determine domain name"); |
162 |
|
|
+$domain = $domain->value; |
163 |
|
|
+ |
164 |
|
|
my $event = $ARGV [0]; |
165 |
|
|
my $userName = $ARGV [1]; |
166 |
|
|
|
167 |
|
|
@@ -115,9 +120,25 @@ foreach my $u (@users) |
168 |
|
|
or ( $x = 255, warn "Failed to modify comment of (unix) account $userName.\n" ); |
169 |
|
|
} |
170 |
|
|
|
171 |
|
|
- system("/usr/sbin/cpu", "usermod", "-c", "$first $last", "-G", "$groups", $userName) == 0 |
172 |
|
|
- or ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to modify comment of (ldap) account $userName.\n" ); |
173 |
|
|
+ system("/usr/sbin/cpu", "usermod", "-c", "$first $last", "-f", "$first", "-E", "$last", "-G", "$groups", $userName) == 0 |
174 |
|
|
+ or ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to modify comment/name of (ldap) account $userName.\n" ); |
175 |
|
|
} |
176 |
|
|
+ |
177 |
|
|
+ my $new_phone = $u->prop('Phone') || ''; |
178 |
|
|
+ my $new_company = $u->prop('Company') || ''; |
179 |
|
|
+ my $new_dept = $u->prop('Department') || ''; |
180 |
|
|
+ my $new_city = $u->prop('City') || ''; |
181 |
|
|
+ my $new_street = $u->prop('Street') || ''; |
182 |
|
|
+ |
183 |
|
|
+ my $tmpattr = File::Temp->new(); |
184 |
|
|
+ print $tmpattr "telephoneNumber: $new_phone\n" if $new_phone; |
185 |
|
|
+ print $tmpattr "o: $new_company\n" if $new_company; |
186 |
|
|
+ print $tmpattr "ou: $new_dept\n" if $new_dept; |
187 |
|
|
+ print $tmpattr "l: $new_city\n" if $new_city; |
188 |
|
|
+ print $tmpattr "street: $new_street\n" $new_street; |
189 |
|
|
+ system("/usr/sbin/cpu", "usermod", "-a", "$tmpattr", "-e", "$userName\@$domain", "-G", "$groups", $userName) == 0 |
190 |
|
|
+ or ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to modify email of (ldap) account $userName.\n" ); |
191 |
|
|
+ undef $tmpattr; |
192 |
|
|
} |
193 |
|
|
|
194 |
|
|
exit ($x); |