Diff for /loncom/interface/lonmsg.pm between versions 1.247 and 1.248

version 1.247, 2021/11/30 15:55:37 version 1.248, 2022/01/18 17:33:13
Line 120  Critical message to a user Line 120  Critical message to a user
   
 New routine that respects "forward" and calls old routine  New routine that respects "forward" and calls old routine
   
 =item * B<user_crit_msg($user, $domain, $subject, $message, $sendback, $nosentstore, $recipid, $attachmenturl, $permresults)>:   =item * B<user_crit_msg($user, $domain, $subject, $message, $sendback, $toperm, $sentmessage, $nosentstore, $recipid, $attachmenturl, $permresults, $senthide)>: 
     Sends a critical message $message to the $user at $domain.  If $sendback      Sends a critical message $message to the $user at $domain.  If $sendback
     is true,  a receipt will be sent to the current user when $user receives       is true,  a receipt will be sent to the current user when $user receives 
     the message.      the message.
Line 148  New routine that respects "forward" and Line 148  New routine that respects "forward" and
   
 =item * B<user_normal_msg($user, $domain, $subject, $message, $citation,  =item * B<user_normal_msg($user, $domain, $subject, $message, $citation,
        $baseurl, $attachmenturl, $toperm, $sentmessage, $symb, $restitle,         $baseurl, $attachmenturl, $toperm, $sentmessage, $symb, $restitle,
        $error,$nosentstore,$recipid,$permresults)>:         $error,$nosentstore,$recipid,$permresults,$senthide)>:
  Sends a message to the  $user at $domain, with subject $subject and message $message.   Sends a message to the  $user at $domain, with subject $subject and message $message.
   
     Additionally it will check if the user has a Forwarding address      Additionally it will check if the user has a Forwarding address
Line 218  use LONCAPA qw(:DEFAULT :match); Line 218  use LONCAPA qw(:DEFAULT :match);
   
   
 sub packagemsg {  sub packagemsg {
     my ($subject,$message,$citation,$baseurl,$attachmenturl,      my ($subject,$message,$citation,$baseurl,$attachmenturl,$recuser,$recdomain,
  $recuser,$recdomain,$msgid,$type,$crsmsgid,$symb,$error,$recipid)=@_;   $msgid,$type,$crsmsgid,$symb,$error,$recipid,$senthide,$origmsgid)=@_;
     $message =&HTML::Entities::encode($message,'<>&"');      $message =&HTML::Entities::encode($message,'<>&"');
     $citation=&HTML::Entities::encode($citation,'<>&"');      $citation=&HTML::Entities::encode($citation,'<>&"');
     $subject =&HTML::Entities::encode($subject,'<>&"');      $subject =&HTML::Entities::encode($subject,'<>&"');
Line 229  sub packagemsg { Line 229  sub packagemsg {
     #remove machine specification      #remove machine specification
     $attachmenturl =~ s|^https?://[^/]+/|/|;      $attachmenturl =~ s|^https?://[^/]+/|/|;
     $attachmenturl =&HTML::Entities::encode($attachmenturl,'<>&"');      $attachmenturl =&HTML::Entities::encode($attachmenturl,'<>&"');
       if ($senthide) {
           foreach my $item ($subject,$message) {
               if ($item ne '') {
                   $item = 'Not shown due to IP block';
               }
           }
           if ($attachmenturl ne '') {
               $attachmenturl = '';
           }
           if ($citation ne '') {
               $citation = '';
           }
           if ($msgid ne '') {
               $msgid = '';
           }
       }
     my $course_context = &get_course_context();      my $course_context = &get_course_context();
     my $now=time;      my $now=time;
     my $ip = &Apache::lonnet::get_requestor_ip();      my $ip = &Apache::lonnet::get_requestor_ip();
Line 319  sub packagemsg { Line 335  sub packagemsg {
             }              }
         }          }
     }      }
       if ($senthide) {
           $result .= '<senthide>$origmsgid</senthide>';
       }
     return ($msgid,$result);      return ($msgid,$result);
 }  }
   
Line 714  sub store_instructor_comment { Line 733  sub store_instructor_comment {
   
 sub user_crit_msg_raw {  sub user_crit_msg_raw {
     my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage,      my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage,
         $nosentstore,$recipid,$attachmenturl,$permresults)=@_;          $nosentstore,$recipid,$attachmenturl,$permresults,$senthide)=@_;
 # Check if allowed missing  # Check if allowed missing
     my ($status,$packed_message);      my ($status,$packed_message);
     my $msgid='undefined';      my $msgid='undefined';
Line 732  sub user_crit_msg_raw { Line 751  sub user_crit_msg_raw {
             $$sentmessage = $packed_message;              $$sentmessage = $packed_message;
         }          }
         if (!$nosentstore) {          if (!$nosentstore) {
             (undef,my $packed_message_no_citation) =              my ($sentmsgid,$packed_message_no_citation) =
             &packagemsg($subject,$message,undef,undef,$attachmenturl,$user,              &packagemsg($subject,$message,undef,undef,$attachmenturl,$user,
                         $domain,$msgid);                          $domain,$msgid,undef,undef,undef,undef,undef,$senthide,$msgid);
             if ($status eq 'ok' || $status eq 'con_delayed') {              if ($status eq 'ok' || $status eq 'con_delayed') {
                 &store_sent_mail($msgid,$packed_message_no_citation);                  if ($senthide && $sentmsgid) {
                       &store_sent_mail($sentmsgid,$packed_message_no_citation);
                   } else {
                       &store_sent_mail($msgid,$packed_message_no_citation);
                   }
             }              }
         }          }
     } else {      } else {
Line 786  sub user_crit_msg_raw { Line 809  sub user_crit_msg_raw {
   
 sub user_crit_msg {  sub user_crit_msg {
     my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage,      my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage,
         $nosentstore,$recipid,$attachmenturl,$permresults)=@_;          $nosentstore,$recipid,$attachmenturl,$permresults,$senthide)=@_;
     my @status;      my @status;
     my %userenv = &Apache::lonnet::get('environment',['msgforward'],      my %userenv = &Apache::lonnet::get('environment',['msgforward'],
                                        $domain,$user);                                         $domain,$user);
Line 797  sub user_crit_msg { Line 820  sub user_crit_msg {
          push(@status,           push(@status,
       &user_crit_msg_raw($forwuser,$forwdomain,$subject,$message,        &user_crit_msg_raw($forwuser,$forwdomain,$subject,$message,
  $sendback,$toperm,$sentmessage,$nosentstore,   $sendback,$toperm,$sentmessage,$nosentstore,
                                  $recipid,$attachmenturl,$permresults));                                   $recipid,$attachmenturl,$permresults,$senthide));
        }         }
     } else {       } else { 
  push(@status,   push(@status,
      &user_crit_msg_raw($user,$domain,$subject,$message,$sendback,       &user_crit_msg_raw($user,$domain,$subject,$message,$sendback,
  $toperm,$sentmessage,$nosentstore,$recipid,   $toperm,$sentmessage,$nosentstore,$recipid,
                                 $attachmenturl,$permresults));                                  $attachmenturl,$permresults,$senthide));
     }      }
     if (wantarray) {      if (wantarray) {
  return @status;   return @status;
Line 852  sub user_crit_received { Line 875  sub user_crit_received {
 sub user_normal_msg_raw {  sub user_normal_msg_raw {
     my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,      my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,
         $toperm,$currid,$newid,$sentmessage,$crsmsgid,$symb,$restitle,          $toperm,$currid,$newid,$sentmessage,$crsmsgid,$symb,$restitle,
         $error,$nosentstore,$recipid,$permresults)=@_;          $error,$nosentstore,$recipid,$permresults,$senthide)=@_;
 # Check if allowed missing  # Check if allowed missing
     my ($status,$packed_message);      my ($status,$packed_message);
     my $msgid='undefined';      my $msgid='undefined';
Line 874  sub user_normal_msg_raw { Line 897  sub user_normal_msg_raw {
                          ('email_status',{'recnewemail'=>time},$domain,$user);                           ('email_status',{'recnewemail'=>time},$domain,$user);
 # Into sent-mail folder if sent mail storage required  # Into sent-mail folder if sent mail storage required
        if (!$nosentstore) {         if (!$nosentstore) {
            (undef,my $packed_message_no_citation) =             my ($sentmsgid,$packed_message_no_citation) =
                &packagemsg($subject,$message,undef,$baseurl,$attachmenturl,                 &packagemsg($subject,$message,undef,$baseurl,$attachmenturl,
                            $user,$domain,$currid,undef,$crsmsgid,$symb,$error);                             $user,$domain,$currid,undef,$crsmsgid,$symb,$error,
                              undef,$senthide,$msgid);
            if ($status eq 'ok' || $status eq 'con_delayed') {             if ($status eq 'ok' || $status eq 'con_delayed') {
                &store_sent_mail($msgid,$packed_message_no_citation);                 if ($senthide && $sentmsgid) {
                      &store_sent_mail($sentmsgid,$packed_message_no_citation);
                  } else {
                      &store_sent_mail($msgid,$packed_message_no_citation);
                  }
            }             }
        }         }
        if (ref($newid) eq 'SCALAR') {         if (ref($newid) eq 'SCALAR') {
Line 929  sub user_normal_msg_raw { Line 957  sub user_normal_msg_raw {
 sub user_normal_msg {  sub user_normal_msg {
     my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,      my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,
  $toperm,$sentmessage,$symb,$restitle,$error,$nosentstore,$recipid,   $toperm,$sentmessage,$symb,$restitle,$error,$nosentstore,$recipid,
         $permresults)=@_;          $permresults,$senthide)=@_;
     my @status;      my @status;
     my %userenv = &Apache::lonnet::get('environment',['msgforward'],      my %userenv = &Apache::lonnet::get('environment',['msgforward'],
                                        $domain,$user);                                         $domain,$user);
Line 941  sub user_normal_msg { Line 969  sub user_normal_msg {
         &user_normal_msg_raw($forwuser,$forwdomain,$subject,$message,          &user_normal_msg_raw($forwuser,$forwdomain,$subject,$message,
      $citation,$baseurl,$attachmenturl,$toperm,       $citation,$baseurl,$attachmenturl,$toperm,
      undef,undef,$sentmessage,undef,$symb,       undef,undef,$sentmessage,undef,$symb,
                                      $restitle,$error,$nosentstore,$recipid,$permresults));                                       $restitle,$error,$nosentstore,$recipid,
                                        $permresults,$senthide));
         }          }
     } else {      } else {
  push(@status,&user_normal_msg_raw($user,$domain,$subject,$message,   push(@status,&user_normal_msg_raw($user,$domain,$subject,$message,
      $citation,$baseurl,$attachmenturl,$toperm,       $citation,$baseurl,$attachmenturl,$toperm,
      undef,undef,$sentmessage,undef,$symb,       undef,undef,$sentmessage,undef,$symb,
                                      $restitle,$error,$nosentstore,$recipid,$permresults));                                       $restitle,$error,$nosentstore,$recipid,
                                        $permresults,$senthide));
     }      }
     if (wantarray) {      if (wantarray) {
         return @status;          return @status;

Removed from v.1.247  
changed lines
  Added in v.1.248


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>