- Timestamp:
- 01/05/17 16:42:23 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Delexpiredusers.pm
r1897 r1913 46 46 If set only log are emitted but changes are not done and mail not really sent 47 47 48 =head2 warn_manager 49 50 If set, send a warning to manager of user after L<warndelay>. 51 52 If not, a mail is sent only to L<summary> (if set). 53 48 54 =head2 cc 49 55 … … 151 157 152 158 my $manager = $ouser->get_attributes('manager') || 'N/A'; 153 154 $self->{_base}->log( 155 LA_NOTICE, 156 "%s Warning, user %s is expired (%s), manager %s", 157 $test ? 'Test: ' : '', 158 $user, 159 $ouser->get_attributes('expireText'), 160 $manager, 161 ); 162 159 163 160 $expired{$manager} ||= { users => [] }; 164 161 push (@{$expired{$manager}{users}}, $ouser); 165 162 } 166 163 167 my $lamail = LATMOS::Accounts::Mail->new( 168 $self->{_la}, 169 'account_expired_reminder.mail', 170 ); 171 172 my $sumto = $self->{syncm}->ini->val($self->{name}, 'summary'); 173 174 foreach my $manager (sort keys %expired) { 175 176 177 my $mail; 178 if (my $omanager = $self->{_base}->get_object('user', $manager)) { 179 $mail = $omanager->get_attributes('mail') or next; 164 if ($self->{syncm}->ini->val('warn_manager')) { 165 my $lamail = LATMOS::Accounts::Mail->new( 166 $self->{_la}, 167 'account_expired_reminder.mail', 168 ); 169 170 foreach my $manager (sort keys %expired) { 171 172 foreach my $ouser (@{ $expired{$manager}{users}}) { 173 $self->{_base}->log( 174 LA_NOTICE, 175 "%s Warning, user %s is expired (%s), manager %s", 176 $test ? 'Test: ' : '', 177 $ouser->id, 178 $ouser->get_attributes('expireText'), 179 $manager, 180 ); 181 $self->{_base}->set_global_value('expiredWarning.user.' . $ouser->id, $ouser->get_attributes(_DATEFLAG)); 182 } 183 $self->{_base}->commit; 184 185 my $omanager = $self->{_base}->get_object('user', $manager) or next; 186 my $mail = $omanager->get_attributes('mail') or next; 187 180 188 $expired{$manager}{manager} = $omanager; 181 } 182 $mail ||= $sumto; 183 $mail or next; 184 185 186 my %mail = ( 187 Subject => 'LATMOS expired account', 188 'X-LATMOS-Reason' => 'Account destruction', 189 ); 190 191 # to is for debuging 192 $mail{to} = $self->{syncm}->ini->val($self->{name}, 'to', $mail); 193 $mail{cc} = $self->{syncm}->ini->val($self->{name}, 'cc'); 194 195 196 if ($test) { 197 $self->{_base}->log(LA_NOTICE, "Test: sending mail to %s for expired account %s", 198 $mail, 199 join(', ', sort map { $_->id } @{ $expired{$manager}{users}}), 189 190 my %mail = ( 191 Subject => 'LATMOS expired account', 192 'X-LATMOS-Reason' => 'Account destruction', 200 193 ); 201 } else { 202 if ($lamail->process(\%mail, $expired{$manager})) { 203 $self->{_base}->log(LA_NOTICE, 204 "Expired account reminder mail sent to %s (%s) (cc: %s) for %s", 205 $mail{to}, 206 $manager, 207 ($mail{cc} || ''), 194 195 # to is for debuging 196 $mail{to} = $self->{syncm}->ini->val($self->{name}, 'to', $mail); 197 $mail{cc} = $self->{syncm}->ini->val($self->{name}, 'cc'); 198 199 if ($test) { 200 $self->{_base}->log(LA_NOTICE, "Test: sending mail to %s for expired account %s", 201 $omanager->id, 208 202 join(', ', sort map { $_->id } @{ $expired{$manager}{users}}), 209 203 ); 210 211 } 212 foreach my $ouser (@{ $expired{$manager}{users}}) { 213 $self->{_base}->set_global_value('expiredWarning.user.' . $ouser->id, $ouser->get_attributes(_DATEFLAG)); 214 } 215 $self->{_base}->commit; 204 } else { 205 if ($lamail->process(\%mail, $expired{$manager})) { 206 $self->{_base}->log(LA_NOTICE, 207 "Expired account reminder mail sent to %s (%s) (cc: %s) for %s", 208 $mail{to}, 209 $omanager->id, 210 ($mail{cc} || ''), 211 join(', ', sort map { $_->id } @{ $expired{$manager}{users}}), 212 ); 213 214 } 215 } 216 216 } 217 217 } 218 218 219 if ( $sumto) {219 if (my $sumto = $self->{syncm}->ini->val($self->{name}, 'summary')) { 220 220 my @summary; 221 221 foreach my $manager (sort keys %expired) { 222 222 foreach (@{$expired{$manager}{users}}) { 223 224 if (my $val = $self->{_base}->get_global_value("expiredWarning.usersummary.$_")) { 225 if ($val eq $_->get_attributes(_DATEFLAG)) { 226 # Warning has been already sent 227 next; 228 } 229 } 230 223 231 push(@summary, sprintf("%s - %s (%s, %s)\n", 224 232 $_->id, … … 230 238 ) 231 239 ); 232 } 233 } 234 235 if (@summary && !$test) { 236 my %mail = ( 237 Subject => 'LATMOS expired account (deactivation planned)', 238 'X-LATMOS-Reason' => 'Account expiration', 239 To => $sumto, 240 ); 241 my $summail = LATMOS::Accounts::Mail->new( 242 $self->{_la}, \join('', @summary), {} 243 ); 244 if ($summail->process(\%mail)) { 245 la_log(LA_NOTICE, "Expiration summary mail sent to %s", 246 $sumto, 247 ); 240 241 $self->{_base}->set_global_value('expiredWarning.user.' . $_->id, $_->get_attributes(_DATEFLAG)); 242 } 243 } 244 245 if (@summary) { 246 if ($test) { 247 $self->{_base}->log(LA_NOTICE, "Test: no sending expired summary to $sumto for users"); 248 } else { 249 my %mail = ( 250 Subject => 'LATMOS expired account (deactivation planned)', 251 'X-LATMOS-Reason' => 'Account expiration', 252 To => $sumto, 253 ); 254 my $summail = LATMOS::Accounts::Mail->new( 255 $self->{_la}, \join('', @summary), {} 256 ); 257 if ($summail->process(\%mail)) { 258 la_log(LA_NOTICE, "Expiration summary mail sent to %s", 259 $sumto, 260 ); 261 } 248 262 } 249 263 } … … 288 302 ); 289 303 $self->{_base}->del_global_value("expiredWarning.user.$user"); 304 $self->{_base}->del_global_value("expiredWarning.usersummary.$user"); 290 305 $ouser->ReportChange('Update', "Automatic unexport due to expiration"); 291 306 $self->{_base}->commit;
Note: See TracChangeset
for help on using the changeset viewer.