Changeset 1881 for trunk/LATMOS-Accounts/lib/LATMOS/Accounts
- Timestamp:
- 12/27/16 12:21:55 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Delexpiredusers.pm
r1880 r1881 42 42 Default is 60 minutes. 43 43 44 =head2 test 45 46 If set only log are emitted but changes are not done and mail not really sent 47 44 48 =head2 cc 45 49 … … 111 115 my ($self) = @_; 112 116 117 my $test = $self->{syncm}->ini->val($self->{name}, 'test'); 113 118 my $warnDelay = $self->{syncm}->ini->val($self->{name}, 'warndelay'); 119 120 my $modifDelay = $self->{syncm}->ini->val($self->{name}, 'modifdelay', 60); 121 my $waitAfterModif = DateTime->now->subtract( minutes => $modifDelay )->iso8601; 114 122 115 123 defined($warnDelay) or do { … … 123 131 124 132 foreach my $user ($self->{_base}->search_objects('user', 125 'exported=1', 'expired<' . $expiredDate->ymd('-'), 'oalias=NULL')) { 133 'exported=1', 134 'expired<' . $expiredDate->ymd('-'), 135 'date<' . $waitAfterModif, 136 'oalias=NULL' 137 )) { 126 138 my $ouser = $self->{_base}->get_object('user', $user) or next; 127 139 … … 140 152 my $manager = $ouser->get_attributes('manager') || 'N/A'; 141 153 154 $self->{_base}->log( 155 $test ? LA_DEBUG : LA_NOTICE, 156 "%sUser %s is expired (%s), sending warning to %s", 157 $test ? 'Test: ' : '', 158 $user, 159 $ouser->get_attributes('expireText'), 160 $manager, 161 ); 162 142 163 $expired{$manager} ||= { users => [] }; 143 164 push (@{$expired{$manager}{users}}, $ouser); … … 166 187 167 188 168 if ($lamail->process(\%mail, $expired{$manager})) { 169 $self->{_base}->log(LA_NOTICE, 170 "Expired account reminder mail sent to %s (%s) (cc: %s) for %s", 171 $mail{to}, 189 if ($test) { 190 $self->{_base}->log(LA_NOTICE, "Test: sending mail to %s for expired account %s", 172 191 $omanager->id, 173 ($mail{cc} || ''),174 192 join(', ', sort map { $_->id } @{ $expired{$manager}{users}}), 175 193 ); 176 177 foreach my $ouser (@{ $expired{$manager}{users}}) { 178 $self->{_base}->set_global_value('expiredWarning.user.' . $ouser->id, $ouser->get_attributes(_DATEFLAG)); 194 } else { 195 if ($lamail->process(\%mail, $expired{$manager})) { 196 $self->{_base}->log(LA_NOTICE, 197 "Expired account reminder mail sent to %s (%s) (cc: %s) for %s", 198 $mail{to}, 199 $omanager->id, 200 ($mail{cc} || ''), 201 join(', ', sort map { $_->id } @{ $expired{$manager}{users}}), 202 ); 203 204 foreach my $ouser (@{ $expired{$manager}{users}}) { 205 $self->{_base}->set_global_value('expiredWarning.user.' . $ouser->id, $ouser->get_attributes(_DATEFLAG)); 206 } 207 $self->{_base}->commit; 179 208 } 180 $self->{_base}->commit;181 209 } 182 210 } … … 198 226 } 199 227 200 if (@summary ) {228 if (@summary && !$test) { 201 229 my %mail = ( 202 230 Subject => 'LATMOS expired account (to disable)', … … 219 247 my ($self) = @_; 220 248 249 my $test = $self->{syncm}->ini->val($self->{name}, 'test'); 250 221 251 my $warnDelay = $self->{syncm}->ini->val($self->{name}, 'warndelay', 0); 222 252 my $unexportDelay = $self->{syncm}->ini->val($self->{name}, 'unexportdelay'); … … 234 264 'exported=1', 235 265 'expired<' . $expiredDate->ymd('-'), 236 'date >' . $waitAfterModif,266 'date<' . $waitAfterModif, 237 267 'oalias=NULL' 238 268 )) { … … 243 273 } 244 274 245 $self->{_base}->log(LA_NOTICE, "User $user unexported because is expired"); 246 $ouser->_set_c_fields( 247 unexported => 1 248 ); 249 $self->{_base}->del_global_value("expiredWarning.user.$user"); 250 $self->{_base}->commit; 275 $self->{_base}->log(LA_NOTICE, "%sUser $user unexported because is expired", $test ? 'Test: ' : ''); 276 277 if (!$test) { 278 $ouser->_set_c_fields( 279 unexported => 1 280 ); 281 $self->{_base}->del_global_value("expiredWarning.user.$user"); 282 $self->{_base}->commit; 283 } 251 284 } 252 285 }
Note: See TracChangeset
for help on using the changeset viewer.