Ignore:
Timestamp:
08/06/09 17:57:36 (15 years ago)
Author:
nanardon
Message:
  • factorize code
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/Group.pm

    r292 r308  
    7171    my %delayed; 
    7272    foreach (keys %data) { 
    73         /^(memberUID|member|sAMAccountName|managedBy)$/ and do { 
     73        /^(memberUID|member)$/ and do { 
    7474            $delayed{$_} = $data{$_}; 
    7575            next; 
    7676        }; 
    77         $class->_populate_entry($entry, $_, $data{$_}); 
     77        $class->_populate_entry($entry, $_, $data{$_}, $base); 
    7878    } 
    7979    my $msg = $base->ldap->add($entry); 
     
    111111} 
    112112 
     113sub _populate_entry { 
     114    my ($self, $entry, $field, $value, $base) = @_; 
     115    $base ||= $self->base; 
     116    for ($field) { 
     117        /managedBy$/ and do { 
     118            if ($value && (my $user = $base->get_object('user', $value))) { 
     119                $value = $user->get_field('dn'); 
     120            } else { 
     121                $value = undef; 
     122            } 
     123            next; 
     124        }; 
     125        /^sAMAccountName$/ and do { 
     126            # Hack... to avoid clash with user 
     127            if ($value !~ /^GR-/) { 
     128                $value = 'GR-' . $value; 
     129            } 
     130            next; 
     131        }; 
     132    } 
     133} 
     134 
    113135sub set_fields { 
    114136    my ($self, %data) = @_; 
    115137    my %ndata; 
    116138    while (my ($f, $val) = each(%data)) { 
    117         $f eq 'managedBy' and do { 
    118             if ($val) { 
    119                 my $user = $self->base->get_object('user', $val) or next; 
    120                 $ndata{$f} = $user->get_field('dn'); 
    121             } else { 
    122                 $ndata{$f} = undef; 
    123             } 
    124             next; 
    125         }; 
    126139        $f eq 'memberUID' and do { 
    127140            my %users; 
     
    136149                    $self->{entry}->add(memberUID => $_); 
    137150                } # else {} # can't happen 
    138                 my $mesg = $self->{entry}->update($self->base->ldap); 
    139151            } 
    140152            next; 
     
    154166            } 
    155167            next; 
    156         }; 
    157         $f eq 'sAMAccountName' and do { 
    158             # Hack... to avoid clash with user 
    159             if ($val =~ /^GR-/) { 
    160                 $ndata{$f} = $val; 
    161             } else { 
    162                 $ndata{$f} = 'GR-' . $val; 
    163             } 
    164             next; 
    165168        }; 
    166169        $ndata{$f} = $val; 
Note: See TracChangeset for help on using the changeset viewer.