Changeset 376
- Timestamp:
- 08/20/09 19:26:38 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/import/epo.pl
r345 r376 23 23 chomp($line); 24 24 25 my @passwd = split(':', $line); 25 my @passwd = split("\t", $line); 26 warn (join(' - ', map { $_ => $passwd[$_] } 0 ..$#passwd)); 27 my @epo; 28 26 29 my $login = { 27 30 clerbaux => 'ccl', 28 31 cgranier => 'clg', 29 32 vernier => 'jeanpaul82', 30 }->{$passwd[0]} || $passwd[0]; 31 my @gecos = split(',', $passwd[4],2); 32 my @epo = split(/\+|,/, $gecos[1]); 33 }->{$passwd[22]} || $passwd[22]; 33 34 my $obj = $labase->get_object($otype, $login) or do { 34 35 warn "Cannot get $login user"; … … 37 38 }; 38 39 my %changes; 39 foreach (@epo) { 40 warn $_; 41 /^NICK(.*)/ and do { 42 $changes{initials} = $1; 40 41 { # le nom/ prénom 42 $changes{sn} = $passwd[0]; 43 $changes{sn} =~ s/_/ /g; 44 $changes{givenName} = $passwd[1]; 45 $changes{givenName} =~ s/_/ /g; 46 if ($passwd[10] =~ /^NICK(.*)$/) { 47 if ($1 eq 'zzz') { 48 $changes{initials} = undef; 49 } else { $changes{initials} = $1 } 50 } 51 $changes{mail} = $passwd[9]; 52 $changes{mail} =~ s/cetp.ipsl.fr/latmos.ipsl.fr/; 53 if ($passwd[13] !~ /1900\d\d\d\d/) { 54 $changes{birthDate} = $passwd[13]; 55 $changes{birthDate} =~ s/^N//; 56 $changes{birthDate} .= '120000Z'; 57 } 58 } 59 60 { # address, a bit more complex 61 # trash old 62 foreach ($obj->get_attributes('otheraddress')) { 63 $labase->delete_object('address', $_); 64 } 65 66 foreach my $col (3, 5) { 67 if($passwd[$col] ne 'AJETER') { 68 my %param = (user => $obj->id,); 69 $passwd[$col] =~ /^(SAV|SAJ|vel|StM)-(.*)/i; 70 my $eposite = $1; 71 $param{physicalDeliveryOfficeName} = $2; 72 $param{telephoneNumber} = '+33 1 ' . $passwd[$col + 3]; 73 74 for ($eposite) { 75 /^SAV$/i and do { 76 $param{site} = 'VerriÚres'; 77 $passwd[14] =~ /aerov/ and $param{isMainAddress} = 1; 78 last; 79 }; 80 /^Vel$/i and do { 81 $param{site} = 'Vélizy'; 82 $passwd[14] =~ /cetp/ and $param{isMainAddress} = 1; 83 last; 84 }; 85 /^Stm$/i and do { 86 $param{site} = 'St Maur'; 87 last; 88 }; 89 /^SAJ$/ and do { 90 $param{site} = 'Jussieu'; 91 $passwd[14] =~ /aero$/ and $param{isMainAddress} = 1; 92 last; 93 }; 94 warn "unmanaged $eposite"; 95 } 96 $labase->create_object( 97 'address', 98 $obj->id . '-' . $eposite, 99 %param 100 ); 101 } 102 } 103 $passwd[12] =~ /^T(\d\d\d\d)(\d\d)(\d\d)$/ and do { 104 if($1 < 2100) { 105 $changes{expire} = "$3/$2/$1 23:59:59"; 106 } else { 107 $changes{expire} = undef; 108 } 109 }; 110 $passwd[17] =~ /^GRADE(.*)/ and do { 111 $changes{grade} = $1; 112 }; 113 } 114 115 { 116 my @group = @{ $obj->get_c_field('memberOf') || []}; 117 foreach ($passwd[15] =~ /^DOM(.*)/g) { 118 push @group, $1; 43 119 next; 44 }; 45 /^DOM(.*)/ and do { 46 my @group = @{ $obj->get_c_field('memberOf') || []}; 47 push @group, $1; 48 $changes{'memberOf'} = \@group; 49 next; 50 }; 51 /^T(\d\d\d\d)(\d\d)(\d\d)$/ and do { 52 $1 > 2100 and next; 53 $changes{expire} = "$3/$2/$1 23:59:59"; 54 next; 55 }; 120 } 121 $changes{'memberOf'} = \@group; 56 122 } 57 123
Note: See TracChangeset
for help on using the changeset viewer.