--- loncom/interface/lonmsg.pm 2015/02/13 01:46:03 1.239
+++ loncom/interface/lonmsg.pm 2021/12/13 23:54:26 1.239.2.3
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging
#
-# $Id: lonmsg.pm,v 1.239 2015/02/13 01:46:03 raeburn Exp $
+# $Id: lonmsg.pm,v 1.239.2.3 2021/12/13 23:54:26 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -231,6 +231,7 @@ sub packagemsg {
$attachmenturl =&HTML::Entities::encode($attachmenturl,'<>&"');
my $course_context = &get_course_context();
my $now=time;
+ my $ip = &Apache::lonnet::get_requestor_ip();
my $msgcount = &get_uniq();
unless(defined($msgid)) {
$msgid = &buildmsgid($now,$subject,$env{'user.name'},$env{'user.domain'},
@@ -250,7 +251,7 @@ sub packagemsg {
}
$result .= ''.$ENV{'SERVER_NAME'}.''.
''.$ENV{'HTTP_HOST'}.''.
- ''.$ENV{'REMOTE_ADDR'}.''.
+ ''.$ip.''.
''.$env{'browser.type'}.''.
''.$env{'browser.os'}.''.
''.$env{'browser.version'}.''.
@@ -397,10 +398,14 @@ sub buildmsgid {
}
sub unpackmsgid {
- my ($msgid,$folder,$skipstatus,$status_cache)=@_;
+ my ($msgid,$folder,$skipstatus,$status_cache,$onlycid)=@_;
$msgid=&unescape($msgid);
my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid,
$processid,$symb,$error) = split(/\:/,&unescape($msgid));
+ if (!defined($processid)) { $fromcid = ''; }
+ if (($onlycid) && ($onlycid ne $fromcid)) {
+ return ($sendtime,'',$fromname,$fromdomain,'',$fromcid,'',$error);
+ }
$shortsubj = &unescape($shortsubj);
$shortsubj = &HTML::Entities::decode($shortsubj);
$symb = &unescape($symb);
@@ -535,16 +540,20 @@ to access the full message.',$url);
$subject = $subj;
}
- my ($blocked,$blocktext);
+ my ($blocked,$blocktext,$clientip);
+ $clientip = &Apache::lonnet::get_requestor_ip();
if (!$crit) {
my %setters;
- my ($startblock,$endblock) =
- &Apache::loncommon::blockcheck(\%setters,'com',$touname,$toudom);
+ my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) =
+ &Apache::loncommon::blockcheck(\%setters,'com',$clientip,$touname,$toudom);
if ($startblock && $endblock) {
$blocked = 1;
my $showstart = &Apache::lonlocal::locallocaltime($startblock);
my $showend = &Apache::lonlocal::locallocaltime($endblock);
$blocktext = &mt_user($user_lh,'LON-CAPA messages sent to you between [_1] and [_2] will be inaccessible until the end of this time period, because you are a student in a course with an active communications block.',$showstart,$showend);
+ } elsif ($by_ip) {
+ $blocked = 1;
+ $blocktext = &mt_user($user_lh,'LON-CAPA messages sent to you will be inaccessible from your IP address [_1], because communication is being blocked for certain IP address(es).',$clientip);
}
}
if ($userenv{'notifywithhtml'} ne '') {