Changeset 1926 for trunk


Ignore:
Timestamp:
01/12/17 11:20:42 (7 years ago)
Author:
nanardon
Message:

Fix the marker set and detection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Delexpiredusers.pm

    r1925 r1926  
    149149        } 
    150150 
    151         if (my $val = $self->{_base}->get_global_value("expiredWarning.user.$user")) { 
    152             if ($val eq $ouser->get_attributes(_DATEFLAG)) { 
    153                 # Warning has been already sent 
    154                 next; 
    155             } 
    156         } 
    157151 
    158152        my $manager = $ouser->get_attributes('manager') || 'N/A'; 
     
    170164        foreach my $manager (sort keys %expired) { 
    171165 
     166            my $omanager = $self->{_base}->get_object('user', $manager) or next; 
     167            my $mail = $omanager->get_attributes('mail') or next; 
     168 
     169            my $data = { 
     170                manager => $omanager, 
     171                users => [], 
     172            }; 
     173 
    172174            foreach my $ouser (@{ $expired{$manager}{users}}) { 
     175                if (my $val = $self->{_base}->get_global_value("expiredWarning.user." . $ouser->id)) { 
     176                    if ($val eq $ouser->get_attributes(_DATEFLAG)) { 
     177                        # Warning has been already sent 
     178                        next; 
     179                    } 
     180                } 
    173181                $self->{_base}->log( 
    174182                    LA_NOTICE, 
     
    179187                    $manager, 
    180188                ); 
     189                push(@{ $data->{users} }, $ouser); 
    181190                $self->{_base}->set_global_value('expiredWarning.user.' . $ouser->id, $ouser->get_attributes(_DATEFLAG)); 
    182191            } 
     192            if (! @{ $data->{users} }) { 
     193                next; 
     194            } 
    183195            $self->{_base}->commit; 
    184196 
    185             my $omanager = $self->{_base}->get_object('user', $manager) or next; 
    186             my $mail = $omanager->get_attributes('mail') or next; 
    187  
    188             $expired{$manager}{manager} = $omanager; 
    189197 
    190198            my %mail = ( 
     
    200208                $self->{_base}->log(LA_NOTICE, "Test: sending mail to %s for expired account %s", 
    201209                    $omanager->id, 
    202                     join(', ', sort map { $_->id } @{ $expired{$manager}{users}}), 
     210                    join(', ', sort map { $_->id } @{ $data->{users} }), 
    203211                ); 
    204212            } else { 
    205                 if ($lamail->process(\%mail, $expired{$manager})) { 
     213                if ($lamail->process(\%mail, $data)) { 
    206214                    $self->{_base}->log(LA_NOTICE, 
    207215                        "Expired account reminder mail sent to %s (%s) (cc: %s) for %s", 
     
    209217                        $omanager->id, 
    210218                        ($mail{cc} || ''), 
    211                         join(', ', sort map { $_->id } @{ $expired{$manager}{users}}), 
     219                        join(', ', sort map { $_->id } @{ $data->{users}}), 
    212220                    ); 
    213221 
     
    222230            foreach (@{$expired{$manager}{users}}) { 
    223231 
    224                 if (my $val = $self->{_base}->get_global_value("expiredWarning.usersummary.$_")) { 
     232                if (my $val = $self->{_base}->get_global_value("expiredWarning.usersummary." . $_->id)) { 
    225233                    if ($val eq $_->get_attributes(_DATEFLAG)) { 
    226234                        # Warning has been already sent 
     
    241249                $self->{_base}->set_global_value('expiredWarning.usersummary.' . $_->id, $_->get_attributes(_DATEFLAG)); 
    242250            } 
    243             $self->{_base}->commit; 
    244         } 
     251        } 
     252 
     253        $self->{_base}->commit; 
    245254 
    246255        if (@summary) { 
    247256            if ($test) { 
    248257                $self->{_base}->log(LA_NOTICE, "Test: no sending expired summary to $sumto for users"); 
     258                $self->{_base}->log(LA_DEBUG, join('', @summary)); 
    249259            } else { 
    250260                my %mail = ( 
Note: See TracChangeset for help on using the changeset viewer.