Changeset 376


Ignore:
Timestamp:
08/20/09 19:26:38 (15 years ago)
Author:
nanardon
Message:
  • update importe script to use orginal base file
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/import/epo.pl

    r345 r376  
    2323    chomp($line); 
    2424 
    25     my @passwd = split(':', $line); 
     25    my @passwd = split("\t", $line); 
     26    warn (join(' - ', map { $_ => $passwd[$_] } 0 ..$#passwd)); 
     27    my @epo; 
     28 
    2629    my $login = { 
    2730        clerbaux => 'ccl', 
    2831        cgranier => 'clg', 
    2932        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]; 
    3334    my $obj = $labase->get_object($otype, $login) or do { 
    3435        warn "Cannot get $login user"; 
     
    3738    }; 
    3839    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; 
    43119            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; 
    56122    } 
    57123 
Note: See TracChangeset for help on using the changeset viewer.