Changeset 1100
- Timestamp:
- 08/07/12 18:26:26 (12 years ago)
- Location:
- trunk/LATMOS-Accounts/lib/LATMOS/Accounts
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql.pm
r1096 r1100 540 540 541 541 542 =head2 list_request_by_object ($otype, $id )542 =head2 list_request_by_object ($otype, $id, $req) 543 543 544 544 Return the list of pending request for a specific object 545 545 546 C<$req> is an optional forms name to limit search 547 546 548 =cut 547 549 548 550 sub list_request_by_object { 549 my ($self, $otype, $id ) = @_;551 my ($self, $otype, $id, $req) = @_; 550 552 551 553 my $sth = $self->db->prepare(q{ … … 558 560 accreq_attributes.value = ? 559 561 and request.object = ? 562 } . 563 ($req ? ' and request.name = ? ' : '') 564 . q{ 560 565 order by apply 561 566 }); 562 $sth->execute($otype, $id );567 $sth->execute($otype, $id, ($req ? ($req) : ())); 563 568 my @ids; 564 569 while (my $res = $sth->fetchrow_hashref) { -
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Mail.pm
r1011 r1100 107 107 } 108 108 109 if (Mail::Sendmail::sendmail( 110 %mail, 111 Message => $message, 112 )) { 113 la_log(LA_DEBUG, "Mail for id %s sent to %s", 114 $mail{'Message-ID'}, 115 $mail{to}, 116 ); 117 return 1; 109 if ($ENV{LA_NO_MAIL}) { 110 printf STDERR "mail %s to %s not sent due to \$LA_NO_MAIL env\n", 111 $mail{subject} || '', $mail{to}; 118 112 } else { 119 la_log(LA_ERR, "Cannot send mail: %s", $Mail::Sendmail::error); 120 return; 113 if (Mail::Sendmail::sendmail( 114 %mail, 115 Message => $message, 116 )) { 117 la_log(LA_DEBUG, "Mail for id %s sent to %s", 118 $mail{'Message-ID'}, 119 $mail{to}, 120 ); 121 return 1; 122 } else { 123 la_log(LA_ERR, "Cannot send mail: %s", $Mail::Sendmail::error); 124 return; 125 } 121 126 } 122 127 } -
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Maintenance.pm
r1085 r1100 5 5 use base qw(LATMOS::Accounts); 6 6 use LATMOS::Accounts::Log; 7 use LATMOS::Accounts::Bases::Sql::DataRequest; 7 8 use FindBin qw($Bin); 8 9 … … 195 196 196 197 my %managers; 197 foreach my $user (@users) { 198 my $uobj = $self->_base->get_object('user', $user); 199 $uobj->get_attributes('unexported') and next; # can't happend 200 my $manager = $uobj->get_attributes('managerContact') || 'N/A'; 201 push(@{$managers{$manager}{users}}, $uobj); 202 } 203 204 foreach (keys %managers) { 205 my $oman = $self->_base->get_object('user', $_) or next; # can't happend 206 $managers{$_}{manager} = $oman; 207 my $mail = $oman->get_attributes('mail') or next; 208 209 my %mail = ( 210 Subject => 'LATMOS expired account', 211 'X-LATMOS-Reason' => 'Account destruction', 212 ); 213 $mail{to} = $options{to} || $mail; 214 if ($lamail->process(\%mail, $managers{$oman->id})) { 215 la_log(LA_NOTICE, 216 "Expired account reminder mail for %s sent to %s (cc: %s) for %s", 217 $oman->id, 218 $mail{to}, 219 ($mail{cc} || ''), 220 join(', ', map { $_->id } @{$managers{$oman->id}{users}}) 198 if (my $accreq = $self->_base->get_object('accreq', 'user-removal')) { 199 foreach my $user (@users) { 200 my $uobj = $self->_base->get_object('user', $user); 201 $uobj->get_attributes('unexported') and next; # can't happend 202 my $manager = $uobj->get_attributes('managerContact') || 'N/A'; 203 push(@{$managers{$manager}{users}}, $uobj); 204 205 my $req = LATMOS::Accounts::Bases::Sql::DataRequest->new($accreq); 206 $req->set_ptr_object($uobj); 207 my @date = localtime( time + 3600 * 24 * 30); # eg: 1 month 208 my $apply_date = sprintf( 209 '%02d/%02d/%d', 210 $date[3], 211 $date[4] + 1, 212 $date[5] + 1900 221 213 ); 214 215 if ($self->_base->list_request_by_object( 216 'user', $user, 'user-removal')) { 217 $self->base->log(LA_NOTICE, 218 "Request %s already exists for %s, skipping", 219 'accreq', 220 $user, 221 ); 222 } else { 223 $req->register( 224 { 225 user => undef, 226 apply => $apply_date, 227 auto => 1, 228 }, 229 exported => 0, 230 ); 231 $self->_base->commit; 232 } 233 } 234 } 235 236 unless($options{test}) { 237 foreach (keys %managers) { 238 my $oman = $self->_base->get_object('user', $_) or next; # can't happend 239 $managers{$_}{manager} = $oman; 240 my $mail = $oman->get_attributes('mail') or next; 241 242 my %mail = ( 243 Subject => 'LATMOS expired account', 244 'X-LATMOS-Reason' => 'Account destruction', 245 ); 246 $mail{to} = $options{to} || $mail; 247 if ($lamail->process(\%mail, $managers{$oman->id})) { 248 la_log(LA_NOTICE, 249 "Expired account reminder mail for %s sent to %s (cc: %s) for %s", 250 $oman->id, 251 $mail{to}, 252 ($mail{cc} || ''), 253 join(', ', map { $_->id } @{$managers{$oman->id}{users}}) 254 ); 255 } 222 256 } 223 257 }
Note: See TracChangeset
for help on using the changeset viewer.