Changeset 833


Ignore:
Timestamp:
03/19/10 03:05:10 (14 years ago)
Author:
nanardon
Message:
  • don't hardcode department list, make code smaller
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/bin/la-web-directory

    r832 r833  
    6262=cut 
    6363 
    64 # On recherche les departements en plus de l'attribut "department" 
    65 #   en scrutant l'ensemble des groupes de l'utilisateur 
    66  
    67 sub tous_les_depts { 
    68     my ($ouser) = @_; 
    69     my $groupes = join(" ",$ouser->get_attributes('memberOf')); 
    70     my $dept = $ouser->get_attributes('department'); 
    71     my $res = $dept; 
    72     my @depts = ('admg', 'tilde', 'manip', 'heppi', 'impec', 'shti', 'space', 'tact', 'ester'); 
    73  
    74     if ($dept) { 
    75             foreach my $g (@depts) { 
    76                 if (($g ne $dept)&&($groupes =~ m/$g/)) { 
    77                         $res .= " $g"; 
    78                 } 
    79         } 
    80     } 
    81  
    82     return $res; 
    83 } 
    8464 
    8565my $LA = LATMOS::Accounts->new($config, noacl => 1); 
     
    9070my %users; 
    9171my $now = strftime('%Y/%m/%d', gmtime); 
     72my @depts = $labase->search_objects('group', 'sutype=dpmt'); 
    9273 
    9374foreach my $user (sort $labase->search_objects('user', 
     
    10687    my $contrat = $ouser->get_attributes('contratType'); 
    10788    if ($company){ 
    108             if (($company ne "LATMOS")&&($contrat ne "heberges")) { 
    109                 next; 
     89        if (($company ne "LATMOS")&&($contrat ne "heberges")) { 
     90            next; 
    11091        } 
    111             if ($company eq "Novimet") { 
    112                 next; 
     92        if ($company eq "Novimet") { 
     93            next; 
    11394        } 
    11495    } else { 
    115             if ((!$contrat)||($contrat ne "heberges")) { 
    116                 next; 
     96        if ((!$contrat)||($contrat ne "heberges")) { 
     97            next; 
    11798        } 
    11899    } 
     
    130111    } 
    131112 
    132 # Si c'est un heberge, on place departement a "EXT" 
     113    # Si c'est un heberge, on place departement a "EXT" 
    133114 
    134115    my $department; 
    135116 
    136117    if ($contrat eq "heberges") { 
    137             $department = "EXT"; 
     118        $department = "EXT"; 
    138119    } else { 
    139             $department = tous_les_depts($ouser); 
     120        # On recherche les departements en plus de l'attribut "department" 
     121        # en scrutant l'ensemble des groupes de l'utilisateur 
     122        my @userdepts; 
     123        foreach my $gr ($ouser->get_attributes('memberOf')) { 
     124            grep { $_ eq $gr } (@depts) and push(@userdepts, $gr); 
     125        }  
     126        $department = join(' ', @userdepts); 
    140127    } 
    141128             
Note: See TracChangeset for help on using the changeset viewer.